root 2 lat temu
commit
82b47dff32
100 zmienionych plików z 12103 dodań i 0 usunięć
  1. 6 0
      .gitignore
  2. 1555 0
      main.sql
  3. 78 0
      main_forum.sql
  4. 78 0
      pd_forum.sql
  5. 1910 0
      prime_roleplay.sql
  6. BIN
      roleplay.amx
  7. 91 0
      samp03/LICENSE
  8. 98 0
      samp03/README
  9. BIN
      samp03/announce
  10. BIN
      samp03/filterscripts/adminspec.amx
  11. 121 0
      samp03/filterscripts/adminspec.pwn
  12. BIN
      samp03/filterscripts/base.amx
  13. 151 0
      samp03/filterscripts/base.pwn
  14. BIN
      samp03/filterscripts/baseaf.amx
  15. 235 0
      samp03/filterscripts/baseaf.pwn
  16. BIN
      samp03/filterscripts/fsdebug.amx
  17. 2099 0
      samp03/filterscripts/fsdebug.pwn
  18. BIN
      samp03/filterscripts/gl_actions.amx
  19. 328 0
      samp03/filterscripts/gl_actions.pwn
  20. BIN
      samp03/filterscripts/gl_chatbubble.amx
  21. 63 0
      samp03/filterscripts/gl_chatbubble.pwn
  22. BIN
      samp03/filterscripts/gl_npcs.amx
  23. 144 0
      samp03/filterscripts/gl_npcs.pwn
  24. BIN
      samp03/filterscripts/gl_property.amx
  25. 835 0
      samp03/filterscripts/gl_property.pwn
  26. BIN
      samp03/filterscripts/gl_realtime.amx
  27. 89 0
      samp03/filterscripts/gl_realtime.pwn
  28. BIN
      samp03/filterscripts/menutest.amx
  29. 53 0
      samp03/filterscripts/menutest.pwn
  30. BIN
      samp03/filterscripts/npc_record.amx
  31. 75 0
      samp03/filterscripts/npc_record.pwn
  32. BIN
      samp03/filterscripts/test_cmds.amx
  33. 495 0
      samp03/filterscripts/test_cmds.pwn
  34. BIN
      samp03/gamemodes/bare.amx
  35. 90 0
      samp03/gamemodes/bare.pwn
  36. BIN
      samp03/gamemodes/barron.amx
  37. 264 0
      samp03/gamemodes/barron.pwn
  38. BIN
      samp03/gamemodes/grandlarc.amx
  39. 457 0
      samp03/gamemodes/grandlarc.pwn
  40. BIN
      samp03/gamemodes/lvdm.amx
  41. 932 0
      samp03/gamemodes/lvdm.pwn
  42. BIN
      samp03/gamemodes/rivershell.amx
  43. 335 0
      samp03/gamemodes/rivershell.pwn
  44. BIN
      samp03/gamemodes/roleplay.amx
  45. BIN
      samp03/gamemodes/timertest.amx
  46. 31 0
      samp03/gamemodes/timertest.pwn
  47. 157 0
      samp03/include/gl_common.inc
  48. 138 0
      samp03/include/gl_spawns.inc
  49. BIN
      samp03/log-core.so
  50. BIN
      samp03/log-core2.so
  51. 1 0
      samp03/logs/errors.log
  52. 8 0
      samp03/logs/log-core.log
  53. 197 0
      samp03/logs/plugins/mysql.log
  54. 0 0
      samp03/logs/warnings.log
  55. BIN
      samp03/npcmodes/at400_ls.amx
  56. 58 0
      samp03/npcmodes/at400_ls.pwn
  57. BIN
      samp03/npcmodes/at400_lv.amx
  58. 58 0
      samp03/npcmodes/at400_lv.pwn
  59. BIN
      samp03/npcmodes/at400_sf.amx
  60. 58 0
      samp03/npcmodes/at400_sf.pwn
  61. BIN
      samp03/npcmodes/mat_test.amx
  62. 41 0
      samp03/npcmodes/mat_test.pwn
  63. BIN
      samp03/npcmodes/npcidle.amx
  64. 15 0
      samp03/npcmodes/npcidle.pwn
  65. BIN
      samp03/npcmodes/npctest.amx
  66. 164 0
      samp03/npcmodes/npctest.pwn
  67. BIN
      samp03/npcmodes/onfoot_test.amx
  68. 38 0
      samp03/npcmodes/onfoot_test.pwn
  69. BIN
      samp03/npcmodes/recordings/1031test.rec
  70. BIN
      samp03/npcmodes/recordings/at400_ls_to_lv_x1.rec
  71. BIN
      samp03/npcmodes/recordings/at400_lv_to_sf_x1.rec
  72. BIN
      samp03/npcmodes/recordings/at400_sf_to_ls_x1.rec
  73. BIN
      samp03/npcmodes/recordings/train_ls_to_sf1.rec
  74. BIN
      samp03/npcmodes/recordings/train_lv_to_ls1.rec
  75. BIN
      samp03/npcmodes/recordings/train_sf_to_lv1.rec
  76. BIN
      samp03/npcmodes/recordings/truth1.rec
  77. BIN
      samp03/npcmodes/taxi_ls_test.amx
  78. 127 0
      samp03/npcmodes/taxi_ls_test.pwn
  79. BIN
      samp03/npcmodes/train_ls.amx
  80. 58 0
      samp03/npcmodes/train_ls.pwn
  81. BIN
      samp03/npcmodes/train_lv.amx
  82. 61 0
      samp03/npcmodes/train_lv.pwn
  83. BIN
      samp03/npcmodes/train_sf.amx
  84. 58 0
      samp03/npcmodes/train_sf.pwn
  85. BIN
      samp03/plugins/crashdetect.so
  86. BIN
      samp03/plugins/mysql.so
  87. BIN
      samp03/plugins/mysql_static.so
  88. 1 0
      samp03/plugins/pawnregex.cfg
  89. BIN
      samp03/plugins/pawnregex.so
  90. BIN
      samp03/plugins/regex.so
  91. BIN
      samp03/plugins/sscanf.so
  92. BIN
      samp03/plugins/streamer.so
  93. BIN
      samp03/plugins/whirlpool.so
  94. BIN
      samp03/samp-npc
  95. BIN
      samp03/samp03svr
  96. BIN
      samp03/scriptfiles/callbackfix.amx
  97. 0 0
      samp03/scriptfiles/handling.db
  98. 3 0
      samp03/scriptfiles/properties/banks.txt
  99. 108 0
      samp03/scriptfiles/properties/businesses.txt
  100. 141 0
      samp03/scriptfiles/properties/houses.txt

+ 6 - 0
.gitignore

@@ -0,0 +1,6 @@
+.bash_history
+.bash_logout
+.bashrc
+.profile
+/samp/logs
+/samp/server_log.txt

+ 1555 - 0
main.sql

@@ -0,0 +1,1555 @@
+-- MariaDB dump 10.19  Distrib 10.6.8-MariaDB, for Linux (x86_64)
+--
+-- Host: localhost    Database: bitnami_phpbb
+-- ------------------------------------------------------
+-- Server version	10.6.8-MariaDB
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `phpbb_acl_groups`
+--
+
+DROP TABLE IF EXISTS `phpbb_acl_groups`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_acl_groups` (
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_option_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_role_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_setting` tinyint(2) NOT NULL DEFAULT 0,
+  KEY `group_id` (`group_id`),
+  KEY `auth_opt_id` (`auth_option_id`),
+  KEY `auth_role_id` (`auth_role_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_acl_options`
+--
+
+DROP TABLE IF EXISTS `phpbb_acl_options`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_acl_options` (
+  `auth_option_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `auth_option` varchar(50) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `is_global` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `is_local` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `founder_only` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`auth_option_id`),
+  UNIQUE KEY `auth_option` (`auth_option`)
+) ENGINE=InnoDB AUTO_INCREMENT=126 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_acl_roles`
+--
+
+DROP TABLE IF EXISTS `phpbb_acl_roles`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_acl_roles` (
+  `role_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `role_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `role_description` text COLLATE utf8mb3_bin NOT NULL,
+  `role_type` varchar(10) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `role_order` smallint(4) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`role_id`),
+  KEY `role_type` (`role_type`),
+  KEY `role_order` (`role_order`)
+) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_acl_roles_data`
+--
+
+DROP TABLE IF EXISTS `phpbb_acl_roles_data`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_acl_roles_data` (
+  `role_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_option_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_setting` tinyint(2) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`role_id`,`auth_option_id`),
+  KEY `ath_op_id` (`auth_option_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_acl_users`
+--
+
+DROP TABLE IF EXISTS `phpbb_acl_users`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_acl_users` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_option_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_role_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `auth_setting` tinyint(2) NOT NULL DEFAULT 0,
+  KEY `user_id` (`user_id`),
+  KEY `auth_option_id` (`auth_option_id`),
+  KEY `auth_role_id` (`auth_role_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_attachments`
+--
+
+DROP TABLE IF EXISTS `phpbb_attachments`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_attachments` (
+  `attach_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `post_msg_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `in_message` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `poster_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `is_orphan` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `physical_filename` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `real_filename` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `download_count` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `attach_comment` text COLLATE utf8mb3_bin NOT NULL,
+  `extension` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `mimetype` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `filesize` int(20) unsigned NOT NULL DEFAULT 0,
+  `filetime` int(11) unsigned NOT NULL DEFAULT 0,
+  `thumbnail` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`attach_id`),
+  KEY `filetime` (`filetime`),
+  KEY `post_msg_id` (`post_msg_id`),
+  KEY `topic_id` (`topic_id`),
+  KEY `poster_id` (`poster_id`),
+  KEY `is_orphan` (`is_orphan`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_banlist`
+--
+
+DROP TABLE IF EXISTS `phpbb_banlist`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_banlist` (
+  `ban_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `ban_userid` int(10) unsigned NOT NULL DEFAULT 0,
+  `ban_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `ban_email` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `ban_start` int(11) unsigned NOT NULL DEFAULT 0,
+  `ban_end` int(11) unsigned NOT NULL DEFAULT 0,
+  `ban_exclude` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `ban_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `ban_give_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`ban_id`),
+  KEY `ban_end` (`ban_end`),
+  KEY `ban_user` (`ban_userid`,`ban_exclude`),
+  KEY `ban_email` (`ban_email`,`ban_exclude`),
+  KEY `ban_ip` (`ban_ip`,`ban_exclude`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_bbcodes`
+--
+
+DROP TABLE IF EXISTS `phpbb_bbcodes`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_bbcodes` (
+  `bbcode_id` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `bbcode_tag` varchar(16) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `bbcode_helpline` text COLLATE utf8mb3_bin NOT NULL,
+  `display_on_posting` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `bbcode_match` text COLLATE utf8mb3_bin NOT NULL,
+  `bbcode_tpl` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `first_pass_match` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `first_pass_replace` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `second_pass_match` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `second_pass_replace` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`bbcode_id`),
+  KEY `display_on_post` (`display_on_posting`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_bookmarks`
+--
+
+DROP TABLE IF EXISTS `phpbb_bookmarks`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_bookmarks` (
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`topic_id`,`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_bots`
+--
+
+DROP TABLE IF EXISTS `phpbb_bots`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_bots` (
+  `bot_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `bot_active` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `bot_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `bot_agent` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `bot_ip` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`bot_id`),
+  KEY `bot_active` (`bot_active`)
+) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_config`
+--
+
+DROP TABLE IF EXISTS `phpbb_config`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_config` (
+  `config_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `config_value` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `is_dynamic` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`config_name`),
+  KEY `is_dynamic` (`is_dynamic`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_config_text`
+--
+
+DROP TABLE IF EXISTS `phpbb_config_text`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_config_text` (
+  `config_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `config_value` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`config_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_confirm`
+--
+
+DROP TABLE IF EXISTS `phpbb_confirm`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_confirm` (
+  `confirm_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `confirm_type` tinyint(3) NOT NULL DEFAULT 0,
+  `code` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `seed` int(10) unsigned NOT NULL DEFAULT 0,
+  `attempts` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`session_id`,`confirm_id`),
+  KEY `confirm_type` (`confirm_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_disallow`
+--
+
+DROP TABLE IF EXISTS `phpbb_disallow`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_disallow` (
+  `disallow_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `disallow_username` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`disallow_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_drafts`
+--
+
+DROP TABLE IF EXISTS `phpbb_drafts`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_drafts` (
+  `draft_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `save_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `draft_subject` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `draft_message` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`draft_id`),
+  KEY `save_time` (`save_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_ext`
+--
+
+DROP TABLE IF EXISTS `phpbb_ext`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_ext` (
+  `ext_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `ext_active` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `ext_state` text COLLATE utf8mb3_bin NOT NULL,
+  UNIQUE KEY `ext_name` (`ext_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_extension_groups`
+--
+
+DROP TABLE IF EXISTS `phpbb_extension_groups`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_extension_groups` (
+  `group_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `group_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `cat_id` tinyint(2) NOT NULL DEFAULT 0,
+  `allow_group` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `download_mode` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `upload_icon` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `max_filesize` int(20) unsigned NOT NULL DEFAULT 0,
+  `allowed_forums` text COLLATE utf8mb3_bin NOT NULL,
+  `allow_in_pm` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`group_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_extensions`
+--
+
+DROP TABLE IF EXISTS `phpbb_extensions`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_extensions` (
+  `extension_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `extension` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`extension_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_forums`
+--
+
+DROP TABLE IF EXISTS `phpbb_forums`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_forums` (
+  `forum_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `parent_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `left_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `right_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_parents` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `forum_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_desc` text COLLATE utf8mb3_bin NOT NULL,
+  `forum_desc_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_desc_options` int(11) unsigned NOT NULL DEFAULT 7,
+  `forum_desc_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_link` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_password` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_style` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_image` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_rules` text COLLATE utf8mb3_bin NOT NULL,
+  `forum_rules_link` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_rules_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_rules_options` int(11) unsigned NOT NULL DEFAULT 7,
+  `forum_rules_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_topics_per_page` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `forum_type` tinyint(4) NOT NULL DEFAULT 0,
+  `forum_status` tinyint(4) NOT NULL DEFAULT 0,
+  `forum_last_post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_last_poster_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_last_post_subject` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_last_post_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `forum_last_poster_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_last_poster_colour` varchar(6) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `forum_flags` tinyint(4) NOT NULL DEFAULT 32,
+  `display_on_index` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_indexing` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_icons` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_prune` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `prune_next` int(11) unsigned NOT NULL DEFAULT 0,
+  `prune_days` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `prune_viewed` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `prune_freq` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `display_subforum_list` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `display_subforum_limit` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `forum_options` int(20) unsigned NOT NULL DEFAULT 0,
+  `enable_shadow_prune` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `prune_shadow_days` mediumint(8) unsigned NOT NULL DEFAULT 7,
+  `prune_shadow_freq` mediumint(8) unsigned NOT NULL DEFAULT 1,
+  `prune_shadow_next` int(11) NOT NULL DEFAULT 0,
+  `forum_posts_approved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_posts_unapproved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_posts_softdeleted` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_topics_approved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_topics_unapproved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `forum_topics_softdeleted` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`forum_id`),
+  KEY `left_right_id` (`left_id`,`right_id`),
+  KEY `forum_lastpost_id` (`forum_last_post_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_forums_access`
+--
+
+DROP TABLE IF EXISTS `phpbb_forums_access`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_forums_access` (
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `session_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`forum_id`,`user_id`,`session_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_forums_track`
+--
+
+DROP TABLE IF EXISTS `phpbb_forums_track`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_forums_track` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `mark_time` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`user_id`,`forum_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_forums_watch`
+--
+
+DROP TABLE IF EXISTS `phpbb_forums_watch`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_forums_watch` (
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `notify_status` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  KEY `forum_id` (`forum_id`),
+  KEY `user_id` (`user_id`),
+  KEY `notify_stat` (`notify_status`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_groups`
+--
+
+DROP TABLE IF EXISTS `phpbb_groups`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_groups` (
+  `group_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `group_type` tinyint(4) NOT NULL DEFAULT 1,
+  `group_founder_manage` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `group_skip_auth` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `group_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_desc` text COLLATE utf8mb3_bin NOT NULL,
+  `group_desc_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_desc_options` int(11) unsigned NOT NULL DEFAULT 7,
+  `group_desc_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_display` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `group_avatar` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_avatar_type` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_avatar_width` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `group_avatar_height` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `group_rank` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `group_colour` varchar(6) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_sig_chars` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `group_receive_pm` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `group_message_limit` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `group_legend` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `group_max_recipients` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`group_id`),
+  KEY `group_legend_name` (`group_legend`,`group_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_icons`
+--
+
+DROP TABLE IF EXISTS `phpbb_icons`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_icons` (
+  `icons_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `icons_url` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `icons_width` tinyint(4) NOT NULL DEFAULT 0,
+  `icons_height` tinyint(4) NOT NULL DEFAULT 0,
+  `icons_alt` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `icons_order` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `display_on_posting` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  PRIMARY KEY (`icons_id`),
+  KEY `display_on_posting` (`display_on_posting`)
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_lang`
+--
+
+DROP TABLE IF EXISTS `phpbb_lang`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_lang` (
+  `lang_id` tinyint(4) NOT NULL AUTO_INCREMENT,
+  `lang_iso` varchar(30) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_dir` varchar(30) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_english_name` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_local_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_author` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`lang_id`),
+  KEY `lang_iso` (`lang_iso`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_log`
+--
+
+DROP TABLE IF EXISTS `phpbb_log`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_log` (
+  `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `log_type` tinyint(4) NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `reportee_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `log_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `log_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `log_operation` text COLLATE utf8mb3_bin NOT NULL,
+  `log_data` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`log_id`),
+  KEY `log_type` (`log_type`),
+  KEY `forum_id` (`forum_id`),
+  KEY `topic_id` (`topic_id`),
+  KEY `reportee_id` (`reportee_id`),
+  KEY `user_id` (`user_id`),
+  KEY `log_time` (`log_time`)
+) ENGINE=InnoDB AUTO_INCREMENT=242 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_login_attempts`
+--
+
+DROP TABLE IF EXISTS `phpbb_login_attempts`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_login_attempts` (
+  `attempt_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `attempt_browser` varchar(150) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `attempt_forwarded_for` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `attempt_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `username` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '0',
+  `username_clean` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '0',
+  KEY `att_ip` (`attempt_ip`,`attempt_time`),
+  KEY `att_for` (`attempt_forwarded_for`,`attempt_time`),
+  KEY `att_time` (`attempt_time`),
+  KEY `user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_migrations`
+--
+
+DROP TABLE IF EXISTS `phpbb_migrations`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_migrations` (
+  `migration_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `migration_depends_on` text COLLATE utf8mb3_bin NOT NULL,
+  `migration_schema_done` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `migration_data_done` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `migration_data_state` text COLLATE utf8mb3_bin NOT NULL,
+  `migration_start_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `migration_end_time` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`migration_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_moderator_cache`
+--
+
+DROP TABLE IF EXISTS `phpbb_moderator_cache`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_moderator_cache` (
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `username` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `group_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `display_on_index` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  KEY `disp_idx` (`display_on_index`),
+  KEY `forum_id` (`forum_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_modules`
+--
+
+DROP TABLE IF EXISTS `phpbb_modules`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_modules` (
+  `module_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `module_enabled` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `module_display` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `module_basename` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `module_class` varchar(10) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `parent_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `left_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `right_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `module_langname` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `module_mode` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `module_auth` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`module_id`),
+  KEY `left_right_id` (`left_id`,`right_id`),
+  KEY `module_enabled` (`module_enabled`),
+  KEY `class_left_id` (`module_class`,`left_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=210 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_notification_emails`
+--
+
+DROP TABLE IF EXISTS `phpbb_notification_emails`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_notification_emails` (
+  `notification_type_id` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `item_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `item_parent_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`notification_type_id`,`item_id`,`item_parent_id`,`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_notification_types`
+--
+
+DROP TABLE IF EXISTS `phpbb_notification_types`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_notification_types` (
+  `notification_type_id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
+  `notification_type_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `notification_type_enabled` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  PRIMARY KEY (`notification_type_id`),
+  UNIQUE KEY `type` (`notification_type_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_notifications`
+--
+
+DROP TABLE IF EXISTS `phpbb_notifications`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_notifications` (
+  `notification_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `notification_type_id` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `item_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `item_parent_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `notification_read` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `notification_time` int(11) unsigned NOT NULL DEFAULT 1,
+  `notification_data` text COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`notification_id`),
+  KEY `item_ident` (`notification_type_id`,`item_id`),
+  KEY `user` (`user_id`,`notification_read`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_oauth_accounts`
+--
+
+DROP TABLE IF EXISTS `phpbb_oauth_accounts`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_oauth_accounts` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `provider` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `oauth_provider_id` text COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`user_id`,`provider`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_oauth_states`
+--
+
+DROP TABLE IF EXISTS `phpbb_oauth_states`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_oauth_states` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `session_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `provider` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `oauth_state` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  KEY `user_id` (`user_id`),
+  KEY `provider` (`provider`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_oauth_tokens`
+--
+
+DROP TABLE IF EXISTS `phpbb_oauth_tokens`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_oauth_tokens` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `session_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `provider` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `oauth_token` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  KEY `user_id` (`user_id`),
+  KEY `provider` (`provider`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_poll_options`
+--
+
+DROP TABLE IF EXISTS `phpbb_poll_options`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_poll_options` (
+  `poll_option_id` tinyint(4) NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `poll_option_text` text COLLATE utf8mb3_bin NOT NULL,
+  `poll_option_total` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  KEY `poll_opt_id` (`poll_option_id`),
+  KEY `topic_id` (`topic_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_poll_votes`
+--
+
+DROP TABLE IF EXISTS `phpbb_poll_votes`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_poll_votes` (
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `poll_option_id` tinyint(4) NOT NULL DEFAULT 0,
+  `vote_user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `vote_user_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  KEY `topic_id` (`topic_id`),
+  KEY `vote_user_id` (`vote_user_id`),
+  KEY `vote_user_ip` (`vote_user_ip`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_posts`
+--
+
+DROP TABLE IF EXISTS `phpbb_posts`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_posts` (
+  `post_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `poster_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `icon_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `poster_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `post_reported` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `enable_bbcode` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_smilies` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_magic_url` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_sig` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `post_username` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_subject` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
+  `post_text` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `post_checksum` varchar(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_attachment` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `bbcode_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `bbcode_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_postcount` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `post_edit_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `post_edit_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_edit_user` int(10) unsigned NOT NULL DEFAULT 0,
+  `post_edit_count` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `post_edit_locked` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `post_visibility` tinyint(3) NOT NULL DEFAULT 0,
+  `post_delete_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `post_delete_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `post_delete_user` int(10) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`post_id`),
+  KEY `forum_id` (`forum_id`),
+  KEY `topic_id` (`topic_id`),
+  KEY `poster_ip` (`poster_ip`),
+  KEY `poster_id` (`poster_id`),
+  KEY `tid_post_time` (`topic_id`,`post_time`),
+  KEY `post_username` (`post_username`),
+  KEY `post_visibility` (`post_visibility`)
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_privmsgs`
+--
+
+DROP TABLE IF EXISTS `phpbb_privmsgs`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_privmsgs` (
+  `msg_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `root_level` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `author_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `icon_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `author_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `message_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `enable_bbcode` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_smilies` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_magic_url` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `enable_sig` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `message_subject` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `message_text` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `message_edit_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `message_edit_user` int(10) unsigned NOT NULL DEFAULT 0,
+  `message_attachment` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `bbcode_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `bbcode_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `message_edit_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `message_edit_count` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `to_address` text COLLATE utf8mb3_bin NOT NULL,
+  `bcc_address` text COLLATE utf8mb3_bin NOT NULL,
+  `message_reported` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`msg_id`),
+  KEY `author_ip` (`author_ip`),
+  KEY `message_time` (`message_time`),
+  KEY `author_id` (`author_id`),
+  KEY `root_level` (`root_level`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_privmsgs_folder`
+--
+
+DROP TABLE IF EXISTS `phpbb_privmsgs_folder`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_privmsgs_folder` (
+  `folder_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `folder_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pm_count` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`folder_id`),
+  KEY `user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_privmsgs_rules`
+--
+
+DROP TABLE IF EXISTS `phpbb_privmsgs_rules`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_privmsgs_rules` (
+  `rule_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `rule_check` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `rule_connection` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `rule_string` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `rule_user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `rule_group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `rule_action` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `rule_folder_id` int(11) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`rule_id`),
+  KEY `user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_privmsgs_to`
+--
+
+DROP TABLE IF EXISTS `phpbb_privmsgs_to`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_privmsgs_to` (
+  `msg_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `author_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `pm_deleted` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `pm_new` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `pm_unread` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `pm_replied` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `pm_marked` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `pm_forwarded` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `folder_id` int(11) NOT NULL DEFAULT 0,
+  KEY `msg_id` (`msg_id`),
+  KEY `author_id` (`author_id`),
+  KEY `usr_flder_id` (`user_id`,`folder_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_profile_fields`
+--
+
+DROP TABLE IF EXISTS `phpbb_profile_fields`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_profile_fields` (
+  `field_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `field_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_type` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_ident` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_length` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_minlen` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_maxlen` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_novalue` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_default_value` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_validation` varchar(64) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_required` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_show_on_reg` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_hide` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_no_view` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_active` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_order` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `field_show_profile` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_show_on_vt` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_show_novalue` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_show_on_pm` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_show_on_ml` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_is_contact` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `field_contact_desc` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `field_contact_url` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`field_id`),
+  KEY `fld_type` (`field_type`),
+  KEY `fld_ordr` (`field_order`)
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_profile_fields_data`
+--
+
+DROP TABLE IF EXISTS `phpbb_profile_fields_data`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_profile_fields_data` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `pf_phpbb_interests` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `pf_phpbb_occupation` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `pf_phpbb_location` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_skype` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_facebook` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_icq` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_twitter` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_website` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_youtube` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `pf_phpbb_yahoo` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_profile_fields_lang`
+--
+
+DROP TABLE IF EXISTS `phpbb_profile_fields_lang`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_profile_fields_lang` (
+  `field_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `lang_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `option_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `field_type` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_value` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`field_id`,`lang_id`,`option_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_profile_lang`
+--
+
+DROP TABLE IF EXISTS `phpbb_profile_lang`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_profile_lang` (
+  `field_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `lang_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `lang_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `lang_explain` text COLLATE utf8mb3_bin NOT NULL,
+  `lang_default_value` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`field_id`,`lang_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_ranks`
+--
+
+DROP TABLE IF EXISTS `phpbb_ranks`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_ranks` (
+  `rank_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `rank_title` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `rank_min` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `rank_special` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `rank_image` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`rank_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_reports`
+--
+
+DROP TABLE IF EXISTS `phpbb_reports`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_reports` (
+  `report_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `reason_id` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_notify` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `report_closed` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `report_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `report_text` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `pm_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `reported_post_enable_bbcode` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `reported_post_enable_smilies` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `reported_post_enable_magic_url` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `reported_post_text` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `reported_post_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `reported_post_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`report_id`),
+  KEY `post_id` (`post_id`),
+  KEY `pm_id` (`pm_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_reports_reasons`
+--
+
+DROP TABLE IF EXISTS `phpbb_reports_reasons`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_reports_reasons` (
+  `reason_id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
+  `reason_title` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `reason_description` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `reason_order` smallint(4) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`reason_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_search_results`
+--
+
+DROP TABLE IF EXISTS `phpbb_search_results`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_search_results` (
+  `search_key` varchar(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `search_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `search_keywords` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `search_authors` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`search_key`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_search_wordlist`
+--
+
+DROP TABLE IF EXISTS `phpbb_search_wordlist`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_search_wordlist` (
+  `word_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `word_text` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `word_common` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `word_count` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`word_id`),
+  UNIQUE KEY `wrd_txt` (`word_text`),
+  KEY `wrd_cnt` (`word_count`)
+) ENGINE=InnoDB AUTO_INCREMENT=453 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_search_wordmatch`
+--
+
+DROP TABLE IF EXISTS `phpbb_search_wordmatch`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_search_wordmatch` (
+  `post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `word_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `title_match` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  UNIQUE KEY `un_mtch` (`word_id`,`post_id`,`title_match`),
+  KEY `word_id` (`word_id`),
+  KEY `post_id` (`post_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_sessions`
+--
+
+DROP TABLE IF EXISTS `phpbb_sessions`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_sessions` (
+  `session_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `session_last_visit` int(11) unsigned NOT NULL DEFAULT 0,
+  `session_start` int(11) unsigned NOT NULL DEFAULT 0,
+  `session_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `session_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_browser` varchar(150) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_forwarded_for` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_page` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `session_viewonline` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `session_autologin` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `session_admin` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `session_forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`session_id`),
+  KEY `session_time` (`session_time`),
+  KEY `session_user_id` (`session_user_id`),
+  KEY `session_fid` (`session_forum_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_sessions_keys`
+--
+
+DROP TABLE IF EXISTS `phpbb_sessions_keys`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_sessions_keys` (
+  `key_id` char(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `last_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `last_login` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`key_id`,`user_id`),
+  KEY `last_login` (`last_login`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_sitelist`
+--
+
+DROP TABLE IF EXISTS `phpbb_sitelist`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_sitelist` (
+  `site_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `site_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `site_hostname` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `ip_exclude` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`site_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_smilies`
+--
+
+DROP TABLE IF EXISTS `phpbb_smilies`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_smilies` (
+  `smiley_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `code` varchar(50) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `emotion` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `smiley_url` varchar(50) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `smiley_width` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `smiley_height` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `smiley_order` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `display_on_posting` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  PRIMARY KEY (`smiley_id`),
+  KEY `display_on_post` (`display_on_posting`)
+) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_styles`
+--
+
+DROP TABLE IF EXISTS `phpbb_styles`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_styles` (
+  `style_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `style_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `style_copyright` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `style_active` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `style_path` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `bbcode_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT 'kNg=',
+  `style_parent_id` int(4) unsigned NOT NULL DEFAULT 0,
+  `style_parent_tree` text COLLATE utf8mb3_bin NOT NULL,
+  PRIMARY KEY (`style_id`),
+  UNIQUE KEY `style_name` (`style_name`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_teampage`
+--
+
+DROP TABLE IF EXISTS `phpbb_teampage`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_teampage` (
+  `teampage_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `teampage_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `teampage_position` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `teampage_parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`teampage_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_topics`
+--
+
+DROP TABLE IF EXISTS `phpbb_topics`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_topics` (
+  `topic_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `icon_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `topic_attachment` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `topic_reported` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `topic_title` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
+  `topic_poster` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `topic_time_limit` int(11) unsigned NOT NULL DEFAULT 0,
+  `topic_views` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `topic_status` tinyint(3) NOT NULL DEFAULT 0,
+  `topic_type` tinyint(3) NOT NULL DEFAULT 0,
+  `topic_first_post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_first_poster_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
+  `topic_first_poster_colour` varchar(6) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `topic_last_post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_last_poster_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_last_poster_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `topic_last_poster_colour` varchar(6) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `topic_last_post_subject` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `topic_last_post_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `topic_last_view_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `topic_moved_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_bumped` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `topic_bumper` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `poll_title` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `poll_start` int(11) unsigned NOT NULL DEFAULT 0,
+  `poll_length` int(11) unsigned NOT NULL DEFAULT 0,
+  `poll_max_options` tinyint(4) NOT NULL DEFAULT 1,
+  `poll_last_vote` int(11) unsigned NOT NULL DEFAULT 0,
+  `poll_vote_change` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `topic_visibility` tinyint(3) NOT NULL DEFAULT 0,
+  `topic_delete_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `topic_delete_reason` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `topic_delete_user` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_posts_approved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `topic_posts_unapproved` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `topic_posts_softdeleted` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`topic_id`),
+  KEY `forum_id` (`forum_id`),
+  KEY `forum_id_type` (`forum_id`,`topic_type`),
+  KEY `last_post_time` (`topic_last_post_time`),
+  KEY `fid_time_moved` (`forum_id`,`topic_last_post_time`,`topic_moved_id`),
+  KEY `topic_visibility` (`topic_visibility`),
+  KEY `forum_vis_last` (`forum_id`,`topic_visibility`,`topic_last_post_id`),
+  KEY `latest_topics` (`forum_id`,`topic_last_post_time`,`topic_last_post_id`,`topic_moved_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_topics_posted`
+--
+
+DROP TABLE IF EXISTS `phpbb_topics_posted`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_topics_posted` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_posted` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`user_id`,`topic_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_topics_track`
+--
+
+DROP TABLE IF EXISTS `phpbb_topics_track`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_topics_track` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `forum_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `mark_time` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`user_id`,`topic_id`),
+  KEY `forum_id` (`forum_id`),
+  KEY `topic_id` (`topic_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_topics_watch`
+--
+
+DROP TABLE IF EXISTS `phpbb_topics_watch`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_topics_watch` (
+  `topic_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `notify_status` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  KEY `topic_id` (`topic_id`),
+  KEY `user_id` (`user_id`),
+  KEY `notify_stat` (`notify_status`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_user_group`
+--
+
+DROP TABLE IF EXISTS `phpbb_user_group`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_user_group` (
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `group_leader` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `user_pending` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  KEY `group_id` (`group_id`),
+  KEY `user_id` (`user_id`),
+  KEY `group_leader` (`group_leader`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_user_notifications`
+--
+
+DROP TABLE IF EXISTS `phpbb_user_notifications`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_user_notifications` (
+  `item_type` varchar(165) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `item_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `method` varchar(165) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `notify` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  UNIQUE KEY `itm_usr_mthd` (`item_type`,`item_id`,`user_id`,`method`),
+  KEY `user_id` (`user_id`),
+  KEY `uid_itm_id` (`user_id`,`item_id`),
+  KEY `usr_itm_tpe` (`user_id`,`item_type`,`item_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_users`
+--
+
+DROP TABLE IF EXISTS `phpbb_users`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_users` (
+  `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `user_type` tinyint(2) NOT NULL DEFAULT 0,
+  `group_id` mediumint(8) unsigned NOT NULL DEFAULT 3,
+  `user_permissions` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `user_perm_from` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_ip` varchar(40) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_regdate` int(11) unsigned NOT NULL DEFAULT 0,
+  `username` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `username_clean` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_password` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_passchg` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_email` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_birthday` varchar(10) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_lastvisit` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_lastmark` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_lastpost_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_lastpage` varchar(200) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_last_confirm_key` varchar(10) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_last_search` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_warnings` tinyint(4) NOT NULL DEFAULT 0,
+  `user_last_warning` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_login_attempts` tinyint(4) NOT NULL DEFAULT 0,
+  `user_inactive_reason` tinyint(2) NOT NULL DEFAULT 0,
+  `user_inactive_time` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_posts` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_lang` varchar(30) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_timezone` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_dateformat` varchar(64) COLLATE utf8mb3_bin NOT NULL DEFAULT 'd M Y H:i',
+  `user_style` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_rank` mediumint(8) unsigned NOT NULL DEFAULT 0,
+  `user_colour` varchar(6) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_new_privmsg` int(4) NOT NULL DEFAULT 0,
+  `user_unread_privmsg` int(4) NOT NULL DEFAULT 0,
+  `user_last_privmsg` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_message_rules` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `user_full_folder` int(11) NOT NULL DEFAULT -3,
+  `user_emailtime` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_topic_show_days` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `user_topic_sortby_type` varchar(1) COLLATE utf8mb3_bin NOT NULL DEFAULT 't',
+  `user_topic_sortby_dir` varchar(1) COLLATE utf8mb3_bin NOT NULL DEFAULT 'd',
+  `user_post_show_days` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `user_post_sortby_type` varchar(1) COLLATE utf8mb3_bin NOT NULL DEFAULT 't',
+  `user_post_sortby_dir` varchar(1) COLLATE utf8mb3_bin NOT NULL DEFAULT 'a',
+  `user_notify` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `user_notify_pm` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_notify_type` tinyint(4) NOT NULL DEFAULT 0,
+  `user_allow_pm` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_allow_viewonline` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_allow_viewemail` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_allow_massemail` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_options` int(11) unsigned NOT NULL DEFAULT 230271,
+  `user_avatar` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_avatar_type` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_avatar_width` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `user_avatar_height` smallint(4) unsigned NOT NULL DEFAULT 0,
+  `user_sig` mediumtext COLLATE utf8mb3_bin NOT NULL,
+  `user_sig_bbcode_uid` varchar(8) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_sig_bbcode_bitfield` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_jabber` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_actkey` varchar(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `reset_token` varchar(64) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `reset_token_expiration` int(11) unsigned NOT NULL DEFAULT 0,
+  `user_newpasswd` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_form_salt` varchar(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `user_new` tinyint(1) unsigned NOT NULL DEFAULT 1,
+  `user_reminded` tinyint(4) NOT NULL DEFAULT 0,
+  `user_reminded_time` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`user_id`),
+  UNIQUE KEY `username_clean` (`username_clean`),
+  KEY `user_birthday` (`user_birthday`),
+  KEY `user_type` (`user_type`),
+  KEY `user_email` (`user_email`)
+) ENGINE=InnoDB AUTO_INCREMENT=89 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_warnings`
+--
+
+DROP TABLE IF EXISTS `phpbb_warnings`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_warnings` (
+  `warning_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `post_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `log_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `warning_time` int(11) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`warning_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_words`
+--
+
+DROP TABLE IF EXISTS `phpbb_words`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_words` (
+  `word_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `word` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  `replacement` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '',
+  PRIMARY KEY (`word_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpbb_zebra`
+--
+
+DROP TABLE IF EXISTS `phpbb_zebra`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpbb_zebra` (
+  `user_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `zebra_id` int(10) unsigned NOT NULL DEFAULT 0,
+  `friend` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  `foe` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`user_id`,`zebra_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2022-09-17  9:44:35

Plik diff jest za duży
+ 78 - 0
main_forum.sql


Plik diff jest za duży
+ 78 - 0
pd_forum.sql


+ 1910 - 0
prime_roleplay.sql

@@ -0,0 +1,1910 @@
+-- phpMyAdmin SQL Dump
+-- version 5.1.1
+-- https://www.phpmyadmin.net/
+--
+-- Host: 127.0.0.1
+-- Generation Time: Aug 14, 2022 at 06:13 PM
+-- Server version: 10.4.22-MariaDB
+-- PHP Version: 7.4.27
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+START TRANSACTION;
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Database: `ssarp_novolsrp`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `accounts`
+--
+
+CREATE TABLE `accounts` (
+  `ID` int(11) NOT NULL,
+  `Username` varchar(24) DEFAULT NULL,
+  `Password` varchar(129) DEFAULT NULL,
+  `Online` int(11) NOT NULL DEFAULT 0,
+  `Quiz` int(11) NOT NULL DEFAULT 0,
+  `Admin` int(11) NOT NULL DEFAULT 0,
+  `DonateRank` int(11) NOT NULL DEFAULT 0,
+  `Email` varchar(32) NOT NULL,
+  `SecretWord` varchar(24) NOT NULL,
+  `SecretHint` varchar(24) NOT NULL,
+  `RegisterDate` timestamp NOT NULL DEFAULT current_timestamp(),
+  `LoginDate` int(11) NOT NULL DEFAULT 0,
+  `IP` varchar(16) DEFAULT 'n/a',
+  `LastIP` varchar(60) NOT NULL DEFAULT 'N/A',
+  `answer1` varchar(5000) NOT NULL,
+  `answer2` varchar(5000) NOT NULL,
+  `answered_questions` int(11) NOT NULL DEFAULT 0,
+  `Namechanges` int(11) NOT NULL DEFAULT 0,
+  `Phonechanges` int(11) NOT NULL DEFAULT 0,
+  `Discord` varchar(256) NOT NULL,
+  `Forum` varchar(60) NOT NULL,
+  `AdminNote` varchar(256) NOT NULL,
+  `Serial` varchar(128) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `accounts`
+--
+
+INSERT INTO `accounts` (`ID`, `Username`, `Password`, `Online`, `Quiz`, `Admin`, `DonateRank`, `Email`, `SecretWord`, `SecretHint`, `RegisterDate`, `LoginDate`, `IP`, `LastIP`, `answer1`, `answer2`, `answered_questions`, `Namechanges`, `Phonechanges`, `Discord`, `Forum`, `AdminNote`, `Serial`) VALUES
+(1, 'Pitix', '4E0658D00F47D86D19A0E792E4BB94B16DB2E902D307DA5637F57CF60E7A174CB4BB6D7095621745B2065DF0C87B77AF69F5D0FBD63359AD3CC6B72F076C3E1E', 0, 0, 6, 0, 'pitix@gmail.com', '0', '', '2022-08-09 15:48:53', 1660061509, 'n/a', '127.0.0.1', '', '', 0, 0, 0, '', '', '', 'F8CF9F4E9DECC554C89CDD05E4FA9C4D48FD08C5');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `advertisement`
+--
+
+CREATE TABLE `advertisement` (
+  `a_id` int(11) NOT NULL,
+  `charid` int(11) NOT NULL,
+  `text` text NOT NULL,
+  `time` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `apartments`
+--
+
+CREATE TABLE `apartments` (
+  `ID` int(11) NOT NULL,
+  `ePosX` float NOT NULL,
+  `ePosY` float NOT NULL,
+  `ePosZ` float NOT NULL,
+  `iPosX` float NOT NULL DEFAULT 0,
+  `iPosY` float NOT NULL DEFAULT 0,
+  `iPosZ` float NOT NULL DEFAULT 0,
+  `interior` int(11) NOT NULL DEFAULT 0,
+  `world` int(11) NOT NULL DEFAULT 0,
+  `name` varchar(60) NOT NULL,
+  `ownerSQLID` int(11) NOT NULL DEFAULT -1,
+  `owner` varchar(24) NOT NULL DEFAULT 'The State',
+  `owned` int(11) NOT NULL DEFAULT 0,
+  `locked` int(11) NOT NULL DEFAULT 0,
+  `price` int(11) NOT NULL DEFAULT 100000,
+  `levelbuy` int(11) NOT NULL DEFAULT 1,
+  `rentprice` int(11) NOT NULL DEFAULT 0,
+  `rentable` int(11) NOT NULL DEFAULT 0,
+  `faction` int(11) NOT NULL DEFAULT -1,
+  `pickup` int(11) NOT NULL DEFAULT 1
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `application`
+--
+
+CREATE TABLE `application` (
+  `id` int(10) UNSIGNED NOT NULL,
+  `master` int(11) NOT NULL,
+  `char_name` varchar(24) NOT NULL,
+  `story` varchar(5000) NOT NULL,
+  `ip_address` varchar(60) NOT NULL,
+  `country_name` varchar(40) NOT NULL,
+  `country_code` varchar(10) NOT NULL,
+  `status` int(11) NOT NULL DEFAULT 0,
+  `reviewed_by` int(11) NOT NULL DEFAULT -1,
+  `accepted` int(11) NOT NULL DEFAULT 0,
+  `reason` varchar(3000) NOT NULL,
+  `date_of_submit` timestamp NOT NULL DEFAULT current_timestamp(),
+  `date_of_review` varchar(24) NOT NULL,
+  `date_of_verdict` varchar(60) NOT NULL,
+  `origin` varchar(26) NOT NULL,
+  `gender` varchar(26) NOT NULL,
+  `age` int(11) NOT NULL,
+  `skin` int(11) NOT NULL DEFAULT 264
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `ateles`
+--
+
+CREATE TABLE `ateles` (
+  `id` int(11) NOT NULL,
+  `mapname` varchar(255) DEFAULT NULL,
+  `posx` float DEFAULT NULL,
+  `posy` float DEFAULT NULL,
+  `posz` float DEFAULT NULL,
+  `interior` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `atms`
+--
+
+CREATE TABLE `atms` (
+  `ID` int(11) NOT NULL,
+  `posX` float NOT NULL,
+  `posY` float NOT NULL,
+  `posZ` float NOT NULL,
+  `rotX` float NOT NULL,
+  `rotY` float NOT NULL,
+  `rotZ` float NOT NULL,
+  `CreatedBy` varchar(24) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `bans`
+--
+
+CREATE TABLE `bans` (
+  `id` int(11) NOT NULL,
+  `name` varchar(24) DEFAULT NULL,
+  `bannedby` varchar(24) NOT NULL,
+  `reason` varchar(100) DEFAULT NULL,
+  `playerIP` varchar(100) DEFAULT NULL,
+  `perm` int(11) NOT NULL DEFAULT 1,
+  `date` timestamp NOT NULL DEFAULT current_timestamp(),
+  `expire` datetime NOT NULL,
+  `serial` varchar(80) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `business`
+--
+
+CREATE TABLE `business` (
+  `biz_id` int(11) NOT NULL,
+  `biz_owned` int(11) NOT NULL,
+  `biz_owner` varchar(32) NOT NULL DEFAULT 'The State',
+  `biz_info` varchar(256) NOT NULL,
+  `biz_items` varchar(256) NOT NULL,
+  `biz_type` int(11) NOT NULL,
+  `biz_subtype` int(11) NOT NULL,
+  `biz_enX` float NOT NULL,
+  `biz_enY` float NOT NULL,
+  `biz_enZ` float NOT NULL,
+  `biz_etX` float NOT NULL,
+  `biz_etY` float NOT NULL,
+  `biz_etZ` float NOT NULL,
+  `biz_level` int(11) NOT NULL,
+  `biz_price` int(11) NOT NULL,
+  `biz_encost` int(11) NOT NULL,
+  `biz_till` int(11) NOT NULL,
+  `biz_locked` int(11) NOT NULL,
+  `biz_interior` int(11) NOT NULL,
+  `biz_world` int(11) NOT NULL,
+  `biz_prod` int(11) NOT NULL,
+  `biz_maxprod` int(11) NOT NULL,
+  `biz_priceprod` int(11) NOT NULL,
+  `biz_carX` float NOT NULL DEFAULT 0,
+  `biz_carY` float NOT NULL DEFAULT 0,
+  `biz_carZ` float NOT NULL DEFAULT 0,
+  `biz_carA` float NOT NULL DEFAULT 0,
+  `biz_boatX` float NOT NULL DEFAULT 0,
+  `biz_boatY` float NOT NULL DEFAULT 0,
+  `biz_boatZ` float NOT NULL DEFAULT 0,
+  `biz_boatA` float NOT NULL DEFAULT 0,
+  `biz_airX` float NOT NULL DEFAULT 0,
+  `biz_airY` float NOT NULL DEFAULT 0,
+  `biz_airZ` float NOT NULL DEFAULT 0,
+  `biz_airA` int(11) NOT NULL DEFAULT 0
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `business_furnitures`
+--
+
+CREATE TABLE `business_furnitures` (
+  `id` int(11) NOT NULL,
+  `model` int(11) DEFAULT -1,
+  `name` varchar(255) DEFAULT NULL,
+  `houseid` int(11) DEFAULT -1,
+  `interior` int(11) DEFAULT 0,
+  `virworld` int(11) DEFAULT 0,
+  `marketprice` int(11) DEFAULT 0,
+  `posx` float DEFAULT 0,
+  `posy` float DEFAULT 0,
+  `posz` float DEFAULT 0,
+  `posrx` float DEFAULT 0,
+  `posry` float DEFAULT 0,
+  `posrz` float DEFAULT 0,
+  `matModel1` int(11) NOT NULL DEFAULT -1,
+  `matModel2` int(11) NOT NULL DEFAULT -1,
+  `matModel3` int(11) NOT NULL DEFAULT -1,
+  `matTxd1` varchar(32) NOT NULL DEFAULT 'none',
+  `matTxd2` varchar(32) NOT NULL DEFAULT 'none',
+  `matTxd3` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture1` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture2` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture3` varchar(32) NOT NULL DEFAULT 'none',
+  `matColor1` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF',
+  `matColor2` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF',
+  `matColor3` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cars`
+--
+
+CREATE TABLE `cars` (
+  `carID` int(11) NOT NULL,
+  `carModel` int(11) DEFAULT 0,
+  `carOwner` int(11) DEFAULT 0,
+  `carName` varchar(64) NOT NULL,
+  `carUItag` varchar(15) NOT NULL,
+  `carPosX` float DEFAULT 0,
+  `carPosY` float DEFAULT 0,
+  `carPosZ` float DEFAULT 0,
+  `carPosR` float DEFAULT 0,
+  `carColor1` int(11) DEFAULT 0,
+  `carColor2` int(11) DEFAULT 0,
+  `carPaintjob` int(11) DEFAULT 3,
+  `carLocked` int(11) DEFAULT 0,
+  `carMod1` int(11) DEFAULT 0,
+  `carMod2` int(11) DEFAULT 0,
+  `carMod3` int(11) DEFAULT 0,
+  `carMod4` int(11) DEFAULT 0,
+  `carMod5` int(11) DEFAULT 0,
+  `carMod6` int(11) DEFAULT 0,
+  `carMod7` int(11) DEFAULT 0,
+  `carMod8` int(11) DEFAULT 0,
+  `carMod9` int(11) DEFAULT 0,
+  `carMod10` int(11) DEFAULT 0,
+  `carMod11` int(11) DEFAULT 0,
+  `carMod12` int(11) DEFAULT 0,
+  `carMod13` int(11) DEFAULT 0,
+  `carMod14` int(11) DEFAULT 0,
+  `carFuel` float DEFAULT 100,
+  `carXM` int(11) NOT NULL DEFAULT 0,
+  `carInsurance` int(11) DEFAULT 0,
+  `carInsuranceOwe` int(11) NOT NULL,
+  `carInsuranceTime` int(11) NOT NULL,
+  `carDamage1` int(11) DEFAULT 0,
+  `carDamage2` int(11) DEFAULT 0,
+  `carDamage3` int(11) DEFAULT 0,
+  `carDamage4` int(11) DEFAULT 0,
+  `carDestroyed` int(11) DEFAULT 0,
+  `carHealth` float DEFAULT 0,
+  `carArmour` float NOT NULL DEFAULT 0,
+  `carLock` int(11) DEFAULT 0,
+  `carMileage` float DEFAULT 0,
+  `carImmob` int(11) DEFAULT 0,
+  `carAlarm` int(11) NOT NULL DEFAULT 0,
+  `carBatteryL` float NOT NULL DEFAULT 100,
+  `carEngineL` float NOT NULL DEFAULT 100,
+  `carPlate` varchar(32) NOT NULL DEFAULT 'None',
+  `carDate` int(11) DEFAULT NULL,
+  `carComps` int(11) NOT NULL DEFAULT 0,
+  `carDuplicate` int(11) NOT NULL,
+  `licenseWeapons` varchar(255) NOT NULL,
+  `carWeapon0` int(11) NOT NULL,
+  `carWeapon1` int(11) NOT NULL,
+  `carWeapon2` int(11) NOT NULL,
+  `carWeapon3` int(11) NOT NULL,
+  `carAmmo0` int(11) NOT NULL,
+  `carAmmo1` int(11) NOT NULL,
+  `carAmmo2` int(11) NOT NULL,
+  `carAmmo3` int(11) NOT NULL,
+  `carPlacePos` varchar(255) NOT NULL,
+  `carPackageWeapons` varchar(255) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `characters`
+--
+
+CREATE TABLE `characters` (
+  `ID` int(11) NOT NULL,
+  `master` int(11) NOT NULL,
+  `char_name` varchar(24) NOT NULL DEFAULT 'Test_Test',
+  `Online` int(11) NOT NULL DEFAULT 0,
+  `Tutorial` int(11) DEFAULT 0,
+  `Activated` int(11) NOT NULL DEFAULT 0,
+  `Model` int(11) DEFAULT 264,
+  `PhoneNumbr` int(11) NOT NULL DEFAULT 0,
+  `PhoneModel` int(11) NOT NULL DEFAULT 0,
+  `PhoneSilent` int(11) NOT NULL DEFAULT 0,
+  `PhoneAir` int(11) NOT NULL DEFAULT 0,
+  `PhoneRingtone` int(11) NOT NULL DEFAULT 0,
+  `PhoneTextRingtone` int(11) NOT NULL,
+  `PosX` float DEFAULT 0,
+  `PosY` float DEFAULT 0,
+  `PosZ` float DEFAULT 0,
+  `PosA` float DEFAULT 0,
+  `Local` int(11) NOT NULL DEFAULT 255,
+  `SpawnHealth` float NOT NULL DEFAULT 50,
+  `Hunger` float NOT NULL DEFAULT 0,
+  `Health` float NOT NULL DEFAULT 150,
+  `Armour` float NOT NULL DEFAULT 0,
+  `Interior` int(11) DEFAULT 0,
+  `World` int(11) DEFAULT 0,
+  `Faction` int(11) NOT NULL DEFAULT -1,
+  `FactionRank` int(11) NOT NULL DEFAULT 0,
+  `FactionSpawn` int(11) NOT NULL DEFAULT 0,
+  `Injured` int(11) NOT NULL DEFAULT 0,
+  `playerTimeout` int(11) NOT NULL DEFAULT 0,
+  `timeoutProp` int(11) NOT NULL DEFAULT -1,
+  `timeoutApp` int(11) NOT NULL DEFAULT -1,
+  `timeoutBizz` int(11) NOT NULL DEFAULT -1,
+  `SpawnPoint` int(11) NOT NULL DEFAULT 0,
+  `PlayingHours` int(11) NOT NULL DEFAULT 0,
+  `PlayingSeconds` int(11) NOT NULL DEFAULT 0,
+  `CreateDate` int(11) DEFAULT 0,
+  `LastLogin` int(11) DEFAULT 0,
+  `LastIP` varchar(16) NOT NULL,
+  `Level` int(11) NOT NULL DEFAULT 1,
+  `Exp` int(11) NOT NULL DEFAULT 0,
+  `ExpCounter` int(11) NOT NULL DEFAULT 0,
+  `MedicBill` int(11) NOT NULL DEFAULT 0,
+  `plaUpgrade` int(11) NOT NULL DEFAULT 0,
+  `DonateRank` int(11) NOT NULL DEFAULT 0,
+  `DonateExpired` int(11) NOT NULL DEFAULT 0,
+  `PayDay` int(11) NOT NULL DEFAULT 0,
+  `PayDayHad` int(11) NOT NULL DEFAULT 0,
+  `PayCheck` int(11) NOT NULL DEFAULT 0,
+  `ChequeCash` int(11) NOT NULL,
+  `BankAccount` int(11) NOT NULL DEFAULT 5000,
+  `Cash` int(11) NOT NULL DEFAULT 10000,
+  `Savings` int(11) NOT NULL DEFAULT 0,
+  `SavingsCollect` int(11) NOT NULL,
+  `playerHouseKey` int(11) NOT NULL DEFAULT -1,
+  `playerComplexKey` int(11) NOT NULL DEFAULT -1,
+  `PlayerBusinessKey` int(11) NOT NULL DEFAULT -1,
+  `Gun1` int(11) NOT NULL DEFAULT 0,
+  `Gun2` int(11) NOT NULL DEFAULT 0,
+  `Gun3` int(11) NOT NULL DEFAULT 0,
+  `Ammo1` int(11) NOT NULL DEFAULT 0,
+  `Ammo2` int(11) NOT NULL DEFAULT 0,
+  `Ammo3` int(11) NOT NULL DEFAULT 0,
+  `OnDuty` int(11) NOT NULL DEFAULT 0,
+  `OnDutySkin` int(11) NOT NULL DEFAULT 0,
+  `FavUniform` int(11) NOT NULL DEFAULT 0,
+  `Radio` int(11) NOT NULL DEFAULT 0,
+  `RadioChannel` int(11) NOT NULL DEFAULT 0,
+  `RadioSlot` int(11) NOT NULL DEFAULT 0,
+  `playerJob` int(11) NOT NULL DEFAULT 0,
+  `playerSideJob` int(11) NOT NULL DEFAULT 0,
+  `playerJobRank` int(11) NOT NULL DEFAULT 0,
+  `ContractTime` int(11) NOT NULL DEFAULT 0,
+  `playerCareer` int(11) NOT NULL DEFAULT 0,
+  `PlayerCarkey` int(11) NOT NULL DEFAULT 9999,
+  `Checkpoint_Type` int(11) NOT NULL DEFAULT -1,
+  `Checkpoint_X` float NOT NULL DEFAULT 0,
+  `Checkpoint_Y` float NOT NULL DEFAULT 0,
+  `Checkpoint_Z` float NOT NULL DEFAULT 0,
+  `Fishes` int(11) NOT NULL DEFAULT 0,
+  `QAPoint` int(11) NOT NULL DEFAULT 0,
+  `Masked` int(11) NOT NULL DEFAULT 0,
+  `MaskID` int(11) NOT NULL DEFAULT 0,
+  `MaskIDEx` int(11) NOT NULL DEFAULT 0,
+  `Attribute` varchar(500) NOT NULL,
+  `Jailed` int(11) NOT NULL,
+  `SentenceTime` int(11) NOT NULL,
+  `Incarcerated` int(11) NOT NULL DEFAULT 0,
+  `FightStyle` int(11) NOT NULL DEFAULT 1,
+  `CarLic` int(11) NOT NULL,
+  `CarLicWarns` int(11) NOT NULL DEFAULT 0,
+  `CarLicSuspended` int(11) NOT NULL DEFAULT 0,
+  `FlyLic` int(11) NOT NULL DEFAULT 0,
+  `MedLic` int(11) NOT NULL DEFAULT 0,
+  `TruckLic` int(11) NOT NULL DEFAULT 0,
+  `WepLic` int(11) NOT NULL,
+  `ADPoint` int(11) NOT NULL,
+  `PackageWeapons` varchar(255) NOT NULL,
+  `PrimaryLicense` int(11) NOT NULL,
+  `SecondaryLicense` int(11) NOT NULL,
+  `CCWLicense` int(11) NOT NULL,
+  `pWalk` int(11) NOT NULL DEFAULT 1,
+  `pTalk` int(11) NOT NULL DEFAULT 0,
+  `pJog` int(11) NOT NULL DEFAULT 1,
+  `pHUDStyle` int(11) NOT NULL DEFAULT 0,
+  `HudToggle` int(11) NOT NULL DEFAULT 0,
+  `LoginToggle` int(11) NOT NULL DEFAULT 0,
+  `LoginSound` int(11) NOT NULL DEFAULT 0,
+  `LoginNotify` int(11) NOT NULL DEFAULT 0,
+  `MainSlot` int(11) NOT NULL DEFAULT 1,
+  `PrisonSkin` int(11) NOT NULL DEFAULT 0,
+  `PrisonTimes` int(11) NOT NULL DEFAULT 0,
+  `JailTimes` int(11) NOT NULL DEFAULT 0,
+  `ActiveListings` int(11) NOT NULL DEFAULT 0,
+  `SprayBanned` int(11) NOT NULL DEFAULT 0,
+  `Cigarettes` int(11) NOT NULL DEFAULT 0,
+  `Drinks` int(11) NOT NULL DEFAULT 0,
+  `GasCan` int(11) NOT NULL DEFAULT 0,
+  `TotalDamages` int(11) NOT NULL DEFAULT 0,
+  `LastBlow` int(11) NOT NULL DEFAULT 0,
+  `Knockout` int(11) NOT NULL DEFAULT 0,
+  `DrugStamp` int(11) NOT NULL DEFAULT 0,
+  `AdminDuty` int(11) NOT NULL DEFAULT 0,
+  `TesterDuty` int(11) NOT NULL DEFAULT 0
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `characters`
+--
+
+INSERT INTO `characters` (`ID`, `master`, `char_name`, `Online`, `Tutorial`, `Activated`, `Model`, `PhoneNumbr`, `PhoneModel`, `PhoneSilent`, `PhoneAir`, `PhoneRingtone`, `PhoneTextRingtone`, `PosX`, `PosY`, `PosZ`, `PosA`, `Local`, `SpawnHealth`, `Hunger`, `Health`, `Armour`, `Interior`, `World`, `Faction`, `FactionRank`, `FactionSpawn`, `Injured`, `playerTimeout`, `timeoutProp`, `timeoutApp`, `timeoutBizz`, `SpawnPoint`, `PlayingHours`, `PlayingSeconds`, `CreateDate`, `LastLogin`, `LastIP`, `Level`, `Exp`, `ExpCounter`, `MedicBill`, `plaUpgrade`, `DonateRank`, `DonateExpired`, `PayDay`, `PayDayHad`, `PayCheck`, `ChequeCash`, `BankAccount`, `Cash`, `Savings`, `SavingsCollect`, `playerHouseKey`, `playerComplexKey`, `PlayerBusinessKey`, `Gun1`, `Gun2`, `Gun3`, `Ammo1`, `Ammo2`, `Ammo3`, `OnDuty`, `OnDutySkin`, `FavUniform`, `Radio`, `RadioChannel`, `RadioSlot`, `playerJob`, `playerSideJob`, `playerJobRank`, `ContractTime`, `playerCareer`, `PlayerCarkey`, `Checkpoint_Type`, `Checkpoint_X`, `Checkpoint_Y`, `Checkpoint_Z`, `Fishes`, `QAPoint`, `Masked`, `MaskID`, `MaskIDEx`, `Attribute`, `Jailed`, `SentenceTime`, `Incarcerated`, `FightStyle`, `CarLic`, `CarLicWarns`, `CarLicSuspended`, `FlyLic`, `MedLic`, `TruckLic`, `WepLic`, `ADPoint`, `PackageWeapons`, `PrimaryLicense`, `SecondaryLicense`, `CCWLicense`, `pWalk`, `pTalk`, `pJog`, `pHUDStyle`, `HudToggle`, `LoginToggle`, `LoginSound`, `LoginNotify`, `MainSlot`, `PrisonSkin`, `PrisonTimes`, `JailTimes`, `ActiveListings`, `SprayBanned`, `Cigarettes`, `Drinks`, `GasCan`, `TotalDamages`, `LastBlow`, `Knockout`, `DrugStamp`, `AdminDuty`, `TesterDuty`) VALUES
+(1, 1, 'Pitix_Test', 0, 1, 1, 264, 132221, 0, 0, 0, 0, 0, 1042.46, 757.609, 10.8719, 232.058, 255, 50, 0, 150, 0, 0, 0, 5, 1, 0, 0, 0, -1, -1, -1, 0, 0, 1277, 0, 1660061510, '127.0.0.1', 1, 0, 1277, 0, 0, 0, 0, 1277, 0, 0, 0, 5000, 9350, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9999, -1, 0, 0, 0, 0, 0, 0, 334786, 59, '', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cheques`
+--
+
+CREATE TABLE `cheques` (
+  `id` int(6) UNSIGNED ZEROFILL NOT NULL,
+  `owner_ID` int(11) NOT NULL,
+  `sender` varchar(255) NOT NULL,
+  `reciever` varchar(255) NOT NULL,
+  `amount` int(11) NOT NULL,
+  `code` varchar(255) NOT NULL,
+  `stamp` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `clothing`
+--
+
+CREATE TABLE `clothing` (
+  `id` int(11) NOT NULL,
+  `object` int(11) NOT NULL,
+  `x` float NOT NULL,
+  `y` float NOT NULL,
+  `z` float NOT NULL,
+  `rx` float NOT NULL,
+  `ry` float NOT NULL,
+  `rz` float NOT NULL,
+  `bone` int(11) NOT NULL,
+  `slot` int(11) NOT NULL,
+  `owner` int(11) NOT NULL,
+  `equip` tinyint(1) NOT NULL,
+  `scalex` float NOT NULL DEFAULT 1,
+  `scaley` float NOT NULL DEFAULT 1,
+  `scalez` float NOT NULL DEFAULT 1,
+  `name` varchar(32) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `criminal_record`
+--
+
+CREATE TABLE `criminal_record` (
+  `idx` int(11) NOT NULL,
+  `userid` int(11) NOT NULL,
+  `player_name` varchar(32) NOT NULL,
+  `issuer_name` varchar(32) NOT NULL,
+  `charge_type` int(11) NOT NULL,
+  `charge_quote` varchar(128) NOT NULL,
+  `charges_count` int(11) NOT NULL DEFAULT 0,
+  `charge_idx` int(11) NOT NULL DEFAULT 0,
+  `charge_row` int(11) NOT NULL DEFAULT 0,
+  `add_date` varchar(90) NOT NULL,
+  `add_time` varchar(90) NOT NULL,
+  `arrest_record` varchar(2000) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `damages`
+--
+
+CREATE TABLE `damages` (
+  `ID` int(11) NOT NULL,
+  `damageTaken` int(11) NOT NULL,
+  `damageTime` int(11) NOT NULL,
+  `damageWeapon` int(11) NOT NULL,
+  `damageBodypart` int(11) NOT NULL,
+  `damageArmor` int(11) NOT NULL,
+  `damageBy` int(11) NOT NULL,
+  `playerID` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `emergency`
+--
+
+CREATE TABLE `emergency` (
+  `id` int(11) NOT NULL,
+  `name` varchar(32) NOT NULL,
+  `number` int(11) NOT NULL,
+  `service` varchar(16) NOT NULL,
+  `trace` varchar(32) NOT NULL,
+  `location` varchar(32) NOT NULL,
+  `situation` varchar(128) NOT NULL,
+  `time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `factions`
+--
+
+CREATE TABLE `factions` (
+  `factionID` int(11) NOT NULL,
+  `factionName` varchar(60) DEFAULT NULL,
+  `factionLeader` varchar(24) NOT NULL,
+  `factionShort` varchar(20) NOT NULL,
+  `factionColor` int(11) DEFAULT 0,
+  `factionColorChat` int(11) NOT NULL,
+  `factionType` int(11) DEFAULT 0,
+  `factionMaxMembers` int(11) NOT NULL DEFAULT 90,
+  `factionMaxVehicles` int(11) NOT NULL DEFAULT 10,
+  `factionRanks` int(11) DEFAULT 0,
+  `factionRank1` varchar(32) DEFAULT NULL,
+  `factionRank2` varchar(32) DEFAULT NULL,
+  `factionRank3` varchar(32) DEFAULT NULL,
+  `factionRank4` varchar(32) DEFAULT NULL,
+  `factionRank5` varchar(32) DEFAULT NULL,
+  `factionRank6` varchar(32) DEFAULT NULL,
+  `factionRank7` varchar(32) DEFAULT NULL,
+  `factionRank8` varchar(32) DEFAULT NULL,
+  `factionRank9` varchar(32) DEFAULT NULL,
+  `factionRank10` varchar(32) DEFAULT NULL,
+  `factionRank11` varchar(32) DEFAULT NULL,
+  `factionRank12` varchar(32) DEFAULT NULL,
+  `factionRank13` varchar(32) DEFAULT NULL,
+  `factionRank14` varchar(32) DEFAULT NULL,
+  `factionRank15` varchar(32) DEFAULT NULL,
+  `factionRank16` varchar(32) DEFAULT NULL,
+  `factionRank17` varchar(32) DEFAULT NULL,
+  `factionRank18` varchar(32) DEFAULT NULL,
+  `factionRank19` varchar(32) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `factions`
+--
+
+INSERT INTO `factions` (`factionID`, `factionName`, `factionLeader`, `factionShort`, `factionColor`, `factionColorChat`, `factionType`, `factionMaxMembers`, `factionMaxVehicles`, `factionRanks`, `factionRank1`, `factionRank2`, `factionRank3`, `factionRank4`, `factionRank5`, `factionRank6`, `factionRank7`, `factionRank8`, `factionRank9`, `factionRank10`, `factionRank11`, `factionRank12`, `factionRank13`, `factionRank14`, `factionRank15`, `factionRank16`, `factionRank17`, `factionRank18`, `factionRank19`) VALUES
+(1, 'POLICIJA', 'Pitix_Test', 'N/A', -1, 33357823, 1, 90, 100, 19, 'Rank 1', 'Rank 2', 'Rank 3', 'Rank 4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL),
+(2, 'POLICIJA', 'Pitix_Test', 'N/A', -1, 33357823, 1, 90, 100, 19, 'Rank 1', 'Rank 2', 'Rank 3', 'Rank 4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL),
+(3, 'HIGH', 'Pitix_Test', 'N/A', -1, 33357823, 6, 90, 100, 19, 'Rank 1', 'Rank 2', 'Rank 3', 'Rank 4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL),
+(4, 'najjaci', 'Pitix_Test', 'N/A', -1, 33357823, 7, 90, 100, 19, 'Rank 1', 'Rank 2', 'Rank 3', 'Rank 4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL),
+(5, 'VATROGASCI', 'Pitix_Test', 'N/A', -1, 33357823, 3, 90, 100, 19, 'Rank 1', 'Rank 2', 'Rank 3', 'Rank 4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `factionspawns`
+--
+
+CREATE TABLE `factionspawns` (
+  `id` int(11) NOT NULL,
+  `factionID` float NOT NULL,
+  `SpawnX` float NOT NULL,
+  `SpawnY` float NOT NULL,
+  `SpawnZ` float NOT NULL,
+  `SpawnA` float NOT NULL,
+  `Interior` int(11) NOT NULL,
+  `World` int(11) NOT NULL,
+  `Apartment` int(11) NOT NULL DEFAULT -1,
+  `Local` int(11) NOT NULL,
+  `Name` varchar(64) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `factionspawns`
+--
+
+INSERT INTO `factionspawns` (`id`, `factionID`, `SpawnX`, `SpawnY`, `SpawnZ`, `SpawnA`, `Interior`, `World`, `Apartment`, `Local`, `Name`) VALUES
+(1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 'Primary Spawn'),
+(2, 2, 0, 0, 0, 0, 0, 0, -1, 0, 'Primary Spawn'),
+(3, 3, 0, 0, 0, 0, 0, 0, -1, 0, 'Primary Spawn'),
+(4, 4, 0, 0, 0, 0, 0, 0, -1, 0, 'Primary Spawn'),
+(5, 5, 0, 0, 0, 0, 0, 0, -1, 0, 'Primary Spawn');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fines`
+--
+
+CREATE TABLE `fines` (
+  `id` int(11) NOT NULL,
+  `cop` varchar(255) NOT NULL,
+  `addressee` varchar(255) NOT NULL,
+  `agency` varchar(255) NOT NULL,
+  `date` timestamp NOT NULL DEFAULT current_timestamp(),
+  `price` int(11) NOT NULL,
+  `reason` varchar(255) NOT NULL,
+  `exp` int(11) NOT NULL,
+  `type` int(11) NOT NULL COMMENT '0 - Player, 1 - Vehicle'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `flags`
+--
+
+CREATE TABLE `flags` (
+  `ID` int(11) NOT NULL,
+  `Text` varchar(256) NOT NULL,
+  `userid` int(11) NOT NULL,
+  `master_name` varchar(24) NOT NULL,
+  `char_name` varchar(24) NOT NULL,
+  `admin_name` varchar(24) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `gates`
+--
+
+CREATE TABLE `gates` (
+  `id` int(11) NOT NULL,
+  `model` int(11) DEFAULT NULL,
+  `faction` int(11) DEFAULT NULL,
+  `posx` float DEFAULT NULL,
+  `posy` float DEFAULT NULL,
+  `posz` float DEFAULT NULL,
+  `posrx` float DEFAULT NULL,
+  `posry` float DEFAULT NULL,
+  `posrz` float DEFAULT NULL,
+  `interior` int(11) DEFAULT NULL,
+  `virworld` int(11) DEFAULT NULL,
+  `name` varchar(255) DEFAULT NULL,
+  `openspeed` float NOT NULL,
+  `movex` float NOT NULL,
+  `movey` float NOT NULL,
+  `movez` float NOT NULL,
+  `moverx` float NOT NULL,
+  `movery` float NOT NULL,
+  `moverz` float NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `houses`
+--
+
+CREATE TABLE `houses` (
+  `id` int(11) NOT NULL,
+  `posx` float DEFAULT 0,
+  `posy` float DEFAULT 0,
+  `posz` float DEFAULT 0,
+  `exitx` float DEFAULT 0,
+  `exity` float DEFAULT 0,
+  `exitz` float DEFAULT 0,
+  `info` varchar(128) NOT NULL,
+  `ownerSQLID` int(11) NOT NULL DEFAULT -1,
+  `owner` varchar(255) DEFAULT NULL,
+  `owned` int(11) DEFAULT 0,
+  `locked` int(11) DEFAULT 0,
+  `price` int(11) DEFAULT 0,
+  `levelbuy` int(11) DEFAULT 0,
+  `rentprice` int(11) DEFAULT 0,
+  `rentable` int(11) DEFAULT 0,
+  `interior` int(11) DEFAULT 0,
+  `world` int(11) DEFAULT 0,
+  `cash` int(11) DEFAULT 0,
+  `weapons` text DEFAULT NULL,
+  `checkx` float DEFAULT 0,
+  `checky` float DEFAULT 0,
+  `checkz` float DEFAULT 0,
+  `radio` int(11) DEFAULT NULL,
+  `subid` int(11) NOT NULL DEFAULT -1,
+  `items` varchar(64) NOT NULL,
+  `complex` int(11) NOT NULL DEFAULT -1,
+  `scriptid` int(11) NOT NULL DEFAULT -1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `houses`
+--
+
+INSERT INTO `houses` (`id`, `posx`, `posy`, `posz`, `exitx`, `exity`, `exitz`, `info`, `ownerSQLID`, `owner`, `owned`, `locked`, `price`, `levelbuy`, `rentprice`, `rentable`, `interior`, `world`, `cash`, `weapons`, `checkx`, `checky`, `checkz`, `radio`, `subid`, `items`, `complex`, `scriptid`) VALUES
+(1, 1638.4, -1865.79, 25.3662, 45.8963, 1439.56, 1082.41, 'Azalea Street, Verdant Bluffs, Los Santos 216', -1, 'The State', 0, 1, 1, 0, 0, 0, 0, 600, 0, NULL, 45.8963, 1439.56, 1082.41, 0, -1, '', -1, 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `house_furnitures`
+--
+
+CREATE TABLE `house_furnitures` (
+  `id` int(11) NOT NULL,
+  `model` int(11) DEFAULT -1,
+  `name` varchar(255) DEFAULT NULL,
+  `houseid` int(11) DEFAULT -1,
+  `interior` int(11) DEFAULT 0,
+  `virworld` int(11) DEFAULT 0,
+  `marketprice` int(11) DEFAULT 0,
+  `posx` float DEFAULT 0,
+  `posy` float DEFAULT 0,
+  `posz` float DEFAULT 0,
+  `posrx` float DEFAULT 0,
+  `posry` float DEFAULT 0,
+  `posrz` float DEFAULT 0,
+  `matModel1` int(11) NOT NULL DEFAULT -1,
+  `matModel2` int(11) NOT NULL DEFAULT -1,
+  `matModel3` int(11) NOT NULL DEFAULT -1,
+  `matTxd1` varchar(32) NOT NULL DEFAULT 'none',
+  `matTxd2` varchar(32) NOT NULL DEFAULT 'none',
+  `matTxd3` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture1` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture2` varchar(32) NOT NULL DEFAULT 'none',
+  `matTexture3` varchar(32) NOT NULL DEFAULT 'none',
+  `matColor1` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF',
+  `matColor2` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF',
+  `matColor3` varchar(32) NOT NULL DEFAULT '0xFFFFFFFF'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `industry`
+--
+
+CREATE TABLE `industry` (
+  `id` int(11) NOT NULL,
+  `posx` float NOT NULL,
+  `posy` float NOT NULL,
+  `posz` float NOT NULL,
+  `item` int(11) NOT NULL,
+  `industryid` int(11) NOT NULL,
+  `trading_type` int(11) NOT NULL,
+  `price` int(11) NOT NULL,
+  `consumption` int(11) NOT NULL,
+  `stock` int(11) NOT NULL,
+  `maximum` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_all`
+--
+
+CREATE TABLE `logs_all` (
+  `ID` int(11) NOT NULL,
+  `User` int(11) NOT NULL,
+  `Log` varchar(256) NOT NULL,
+  `Timestamp` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `logs_all`
+--
+
+INSERT INTO `logs_all` (`ID`, `User`, `Log`, `Timestamp`) VALUES
+(1, 1, 'SPECTATING to SPAWNED', 1660060237),
+(2, 1, 'SPAWNED to ON FOOT', 1660060237),
+(3, 1, 'ON FOOT to FRONT SEAT (VID 9, DB -1)', 1660060246),
+(4, 1, 'FRONT SEAT to ON FOOT', 1660060276),
+(5, 1, 'ON FOOT to FRONT SEAT (VID 22, DB -1)', 1660060361),
+(6, 1, 'SPAWNED to ON FOOT', 1660060481),
+(7, 1, 'Killed by  with Fists', 1660060484),
+(8, 1, 'SPAWNED to ON FOOT', 1660060484),
+(9, 1, 'SPAWNED to ON FOOT', 1660060487),
+(10, 1, 'SPAWNED to ON FOOT', 1660060490),
+(11, 1, 'ON FOOT to FRONT SEAT (VID 23, DB -1)', 1660060557),
+(12, 1, 'FRONT SEAT to ON FOOT', 1660060710),
+(13, 1, 'ON FOOT to FRONT SEAT (VID 24, DB -1)', 1660060903),
+(14, 1, 'FRONT SEAT to ON FOOT', 1660061139),
+(15, 1, 'ON FOOT to FRONT SEAT (VID 24, DB -1)', 1660061146),
+(16, 1, 'FRONT SEAT to ON FOOT', 1660061286),
+(17, 1, 'ON FOOT to FRONT SEAT (VID 24, DB -1)', 1660061300),
+(18, 1, 'FRONT SEAT to ON FOOT', 1660061319),
+(19, 1, 'Left the server (timeout) [P:18, PL:2.068326]', 1660061447),
+(20, 1, 'Logged In', 1660061510),
+(21, 1, 'SPECTATING to SPAWNED', 1660061510),
+(22, 1, 'SPAWNED to ON FOOT', 1660061510),
+(23, 1, 'Left the server (quit) [P:-1, PL:0.000000]', 1660061635);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_ban`
+--
+
+CREATE TABLE `logs_ban` (
+  `id` int(11) NOT NULL,
+  `IP` varchar(16) DEFAULT '0.0.0.0',
+  `Character` varchar(24) DEFAULT NULL,
+  `BannedBy` varchar(24) DEFAULT NULL,
+  `Reason` varchar(128) DEFAULT NULL,
+  `Date` timestamp NOT NULL DEFAULT current_timestamp(),
+  `character_id` int(11) NOT NULL DEFAULT -1,
+  `user_id` int(11) NOT NULL DEFAULT -1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_connection`
+--
+
+CREATE TABLE `logs_connection` (
+  `id` int(11) NOT NULL,
+  `ip` varchar(255) NOT NULL,
+  `master` varchar(24) NOT NULL,
+  `char_name` varchar(24) NOT NULL,
+  `stamp` timestamp NOT NULL DEFAULT current_timestamp(),
+  `disconnected` datetime NOT NULL,
+  `serial` varchar(128) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `logs_connection`
+--
+
+INSERT INTO `logs_connection` (`id`, `ip`, `master`, `char_name`, `stamp`, `disconnected`, `serial`) VALUES
+(1, '127.0.0.1', 'Pitiks_Test', '', '2022-08-09 15:45:01', '0000-00-00 00:00:00', 'F8CF9F4E9DECC554C89CDD05E4FA9C4D48FD08C5'),
+(2, '127.0.0.1', 'Pitix', 'Pitix_Test', '2022-08-09 15:49:21', '2022-08-09 18:10:47', 'F8CF9F4E9DECC554C89CDD05E4FA9C4D48FD08C5'),
+(3, '127.0.0.1', 'Pitix', 'Pitix_Test', '2022-08-09 16:11:25', '2022-08-09 18:13:55', 'F8CF9F4E9DECC554C89CDD05E4FA9C4D48FD08C5');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_death`
+--
+
+CREATE TABLE `logs_death` (
+  `id` int(10) UNSIGNED NOT NULL,
+  `killer` varchar(64) NOT NULL,
+  `victim` varchar(64) NOT NULL,
+  `reason` smallint(6) NOT NULL,
+  `killerid` int(11) NOT NULL,
+  `victimid` int(11) NOT NULL,
+  `stamp` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `logs_death`
+--
+
+INSERT INTO `logs_death` (`id`, `killer`, `victim`, `reason`, `killerid`, `victimid`, `stamp`) VALUES
+(1, 'N/A', 'Pitix Test', 54, -1, 1, '2022-08-09 15:54:35'),
+(2, 'N/A', 'Pitix Test', 255, -1, 1, '2022-08-09 15:54:41'),
+(3, 'N/A', 'Pitix Test', 255, -1, 1, '2022-08-09 15:54:44'),
+(4, 'N/A', 'Pitix Test', 255, -1, 1, '2022-08-09 15:54:47');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_jail`
+--
+
+CREATE TABLE `logs_jail` (
+  `id` int(11) NOT NULL,
+  `IP` varchar(16) DEFAULT '0.0.0.0',
+  `Character` varchar(24) DEFAULT NULL,
+  `JailedBy` varchar(24) DEFAULT NULL,
+  `Minutes` int(11) NOT NULL,
+  `Reason` varchar(128) DEFAULT NULL,
+  `Date` timestamp NOT NULL DEFAULT current_timestamp(),
+  `character_id` int(11) NOT NULL DEFAULT -1,
+  `user_id` int(11) NOT NULL DEFAULT -1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_kick`
+--
+
+CREATE TABLE `logs_kick` (
+  `id` int(11) NOT NULL,
+  `IP` varchar(16) DEFAULT '0.0.0.0',
+  `Character` varchar(24) DEFAULT NULL,
+  `KickedBy` varchar(24) DEFAULT NULL,
+  `Reason` varchar(128) DEFAULT NULL,
+  `Date` timestamp NOT NULL DEFAULT current_timestamp(),
+  `character_id` int(11) NOT NULL DEFAULT -1,
+  `user_id` int(11) NOT NULL DEFAULT -1
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_mask`
+--
+
+CREATE TABLE `logs_mask` (
+  `id` int(10) UNSIGNED NOT NULL,
+  `admin` int(11) NOT NULL,
+  `action_key` varchar(128) NOT NULL,
+  `action_log` varchar(255) NOT NULL,
+  `stamp` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `logs_spray`
+--
+
+CREATE TABLE `logs_spray` (
+  `ID` int(11) NOT NULL,
+  `SprayID` int(11) NOT NULL,
+  `Log` varchar(256) NOT NULL,
+  `Timestamp` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `motd`
+--
+
+CREATE TABLE `motd` (
+  `id` int(11) NOT NULL,
+  `Line1` varchar(256) NOT NULL,
+  `Line2` varchar(256) NOT NULL,
+  `Line3` varchar(256) NOT NULL,
+  `Line4` varchar(256) NOT NULL,
+  `Line5` varchar(256) NOT NULL,
+  `EditedBy` varchar(24) NOT NULL,
+  `EditedDate` varchar(128) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `movedoors`
+--
+
+CREATE TABLE `movedoors` (
+  `id` int(11) NOT NULL,
+  `model` int(11) DEFAULT NULL,
+  `faction` int(11) DEFAULT NULL,
+  `posx` float DEFAULT NULL,
+  `posy` float DEFAULT NULL,
+  `posz` float DEFAULT NULL,
+  `posrx` float DEFAULT NULL,
+  `posry` float DEFAULT NULL,
+  `posrz` float DEFAULT NULL,
+  `interior` int(11) DEFAULT NULL,
+  `virworld` int(11) DEFAULT NULL,
+  `name` varchar(255) DEFAULT NULL,
+  `openspeed` float NOT NULL,
+  `movex` float NOT NULL,
+  `movey` float NOT NULL,
+  `movez` float NOT NULL,
+  `moverx` float NOT NULL,
+  `movery` float NOT NULL,
+  `moverz` float NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `namechanges`
+--
+
+CREATE TABLE `namechanges` (
+  `namechangeid` int(11) NOT NULL,
+  `charid` int(11) NOT NULL,
+  `oldname` varchar(24) NOT NULL,
+  `newname` varchar(24) NOT NULL,
+  `time` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `notifications`
+--
+
+CREATE TABLE `notifications` (
+  `ID` int(11) NOT NULL,
+  `master` int(11) NOT NULL,
+  `title` varchar(60) NOT NULL,
+  `body` varchar(1500) DEFAULT '0',
+  `time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
+  `read` int(11) DEFAULT 0,
+  `sender` varchar(24) NOT NULL,
+  `friend` int(11) NOT NULL DEFAULT 0
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `particles`
+--
+
+CREATE TABLE `particles` (
+  `ID` int(11) NOT NULL,
+  `Creator` varchar(24) NOT NULL,
+  `Model` int(11) NOT NULL,
+  `PosX` float NOT NULL DEFAULT 0,
+  `PosY` float NOT NULL DEFAULT 0,
+  `PosZ` float NOT NULL DEFAULT 0,
+  `RotX` float NOT NULL DEFAULT 0,
+  `RotY` float NOT NULL DEFAULT 0,
+  `RotZ` float NOT NULL DEFAULT 0,
+  `Stamp` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `phone_contacts`
+--
+
+CREATE TABLE `phone_contacts` (
+  `contactID` int(11) NOT NULL,
+  `contactAdded` int(11) NOT NULL,
+  `contactAddee` int(11) NOT NULL,
+  `contactName` varchar(24) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `phone_sms`
+--
+
+CREATE TABLE `phone_sms` (
+  `id` int(11) NOT NULL,
+  `PhoneOwner` int(11) NOT NULL,
+  `PhoneReceive` int(11) NOT NULL,
+  `PhoneSMS` varchar(128) NOT NULL,
+  `ReadSMS` int(11) NOT NULL DEFAULT 0,
+  `Archive` int(11) NOT NULL DEFAULT 0,
+  `Date` varchar(36) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `player_drugs`
+--
+
+CREATE TABLE `player_drugs` (
+  `idx` int(11) NOT NULL,
+  `drugType` int(11) NOT NULL,
+  `drugAmount` float NOT NULL,
+  `drugStrength` float NOT NULL,
+  `drugStorage` int(11) NOT NULL,
+  `drugStamp` int(11) NOT NULL,
+  `PlayerSQLID` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `points`
+--
+
+CREATE TABLE `points` (
+  `ID` int(11) NOT NULL,
+  `outsideX` float NOT NULL,
+  `outsideY` float NOT NULL,
+  `outsideZ` float NOT NULL,
+  `outsideA` float NOT NULL,
+  `insideX` float NOT NULL DEFAULT 0,
+  `insideY` float NOT NULL DEFAULT 0,
+  `insideZ` float NOT NULL DEFAULT 0,
+  `insideA` float NOT NULL DEFAULT 0,
+  `outsideApartment` int(11) NOT NULL DEFAULT -1,
+  `insideApartment` int(11) NOT NULL DEFAULT -1,
+  `pointRange` float NOT NULL DEFAULT 3,
+  `pointType` int(11) NOT NULL DEFAULT 0,
+  `pointLocked` int(11) NOT NULL DEFAULT 0,
+  `pointFaction` int(11) NOT NULL DEFAULT -1,
+  `pointName` varchar(80) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `radio`
+--
+
+CREATE TABLE `radio` (
+  `id` int(11) NOT NULL,
+  `channel` int(11) NOT NULL,
+  `slot` int(11) NOT NULL,
+  `owner` int(11) NOT NULL,
+  `password` varchar(16) NOT NULL DEFAULT 'None'
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `radio_station`
+--
+
+CREATE TABLE `radio_station` (
+  `id` int(11) NOT NULL,
+  `genres_id` int(11) NOT NULL,
+  `subgenres_id` int(11) NOT NULL,
+  `station_name` varchar(255) NOT NULL,
+  `station_url` varchar(500) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `signal_tower`
+--
+
+CREATE TABLE `signal_tower` (
+  `id` int(11) NOT NULL,
+  `t_posX` float NOT NULL,
+  `t_posY` float NOT NULL,
+  `t_posZ` float NOT NULL,
+  `t_range` float NOT NULL,
+  `t_name` varchar(64) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `spraylocations`
+--
+
+CREATE TABLE `spraylocations` (
+  `ID` int(11) NOT NULL,
+  `creator` varchar(24) NOT NULL DEFAULT 'N/A',
+  `name` varchar(256) DEFAULT NULL,
+  `posX` float NOT NULL,
+  `posY` float NOT NULL,
+  `posZ` float NOT NULL,
+  `rotX` float NOT NULL,
+  `rotY` float NOT NULL,
+  `rotZ` float NOT NULL,
+  `model` int(11) NOT NULL,
+  `defaultModel` int(11) NOT NULL DEFAULT -1,
+  `font` varchar(24) NOT NULL DEFAULT 'Arial'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `ucp_friends`
+--
+
+CREATE TABLE `ucp_friends` (
+  `ID` int(11) NOT NULL,
+  `friendName` varchar(24) NOT NULL,
+  `playerName` varchar(24) NOT NULL,
+  `friendID` int(11) NOT NULL,
+  `playerID` int(11) NOT NULL,
+  `friendPending` int(11) NOT NULL DEFAULT 1
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `ucp_logins`
+--
+
+CREATE TABLE `ucp_logins` (
+  `id` int(11) NOT NULL,
+  `User` varchar(24) NOT NULL,
+  `IP` varchar(24) NOT NULL,
+  `Browser` varchar(24) NOT NULL,
+  `OS` varchar(24) NOT NULL,
+  `Date` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `ucp_logins`
+--
+
+INSERT INTO `ucp_logins` (`id`, `User`, `IP`, `Browser`, `OS`, `Date`) VALUES
+(1, 'Pitix', '::1', 'Chrome', 'Windows 10', '2022-08-11 19:47:37'),
+(2, 'Pitix', '::1', 'Chrome', 'Windows 10', '2022-08-11 19:51:23');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `vehicles`
+--
+
+CREATE TABLE `vehicles` (
+  `vehicleID` int(11) NOT NULL,
+  `vehicleModelID` int(11) NOT NULL DEFAULT 0,
+  `vehiclePosX` varchar(255) NOT NULL DEFAULT '0',
+  `vehiclePosY` varchar(255) NOT NULL DEFAULT '0',
+  `vehiclePosZ` varchar(255) NOT NULL DEFAULT '0',
+  `vehiclePosRotation` varchar(255) NOT NULL DEFAULT '0',
+  `vehicleFaction` int(11) NOT NULL DEFAULT -1,
+  `vehiclePlate` varchar(24) NOT NULL,
+  `vehicleSiren` int(11) NOT NULL DEFAULT 0,
+  `vehicleCol1` int(11) NOT NULL DEFAULT -1,
+  `vehicleCol2` int(11) NOT NULL DEFAULT -1,
+  `vehicleSign` varchar(50) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `vehicle_drugs`
+--
+
+CREATE TABLE `vehicle_drugs` (
+  `idx` int(11) NOT NULL,
+  `drugType` int(11) NOT NULL,
+  `drugAmount` float NOT NULL,
+  `drugStrength` float NOT NULL,
+  `drugStorage` int(11) NOT NULL,
+  `drugStamp` int(11) NOT NULL,
+  `vehicle` int(11) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `weapon`
+--
+
+CREATE TABLE `weapon` (
+  `id` int(11) NOT NULL,
+  `weaponid` int(11) NOT NULL,
+  `x` float NOT NULL,
+  `y` float NOT NULL,
+  `z` float NOT NULL,
+  `rx` float NOT NULL,
+  `ry` float NOT NULL,
+  `rz` float NOT NULL,
+  `bone` int(11) NOT NULL,
+  `owner` int(11) NOT NULL,
+  `hide` tinyint(1) NOT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Indexes for dumped tables
+--
+
+--
+-- Indexes for table `accounts`
+--
+ALTER TABLE `accounts`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `advertisement`
+--
+ALTER TABLE `advertisement`
+  ADD PRIMARY KEY (`a_id`);
+
+--
+-- Indexes for table `apartments`
+--
+ALTER TABLE `apartments`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `application`
+--
+ALTER TABLE `application`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `ateles`
+--
+ALTER TABLE `ateles`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `atms`
+--
+ALTER TABLE `atms`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `bans`
+--
+ALTER TABLE `bans`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `business`
+--
+ALTER TABLE `business`
+  ADD PRIMARY KEY (`biz_id`);
+
+--
+-- Indexes for table `business_furnitures`
+--
+ALTER TABLE `business_furnitures`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `cars`
+--
+ALTER TABLE `cars`
+  ADD PRIMARY KEY (`carID`);
+
+--
+-- Indexes for table `characters`
+--
+ALTER TABLE `characters`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `cheques`
+--
+ALTER TABLE `cheques`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `clothing`
+--
+ALTER TABLE `clothing`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `criminal_record`
+--
+ALTER TABLE `criminal_record`
+  ADD PRIMARY KEY (`idx`);
+
+--
+-- Indexes for table `damages`
+--
+ALTER TABLE `damages`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `emergency`
+--
+ALTER TABLE `emergency`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `factions`
+--
+ALTER TABLE `factions`
+  ADD PRIMARY KEY (`factionID`);
+
+--
+-- Indexes for table `factionspawns`
+--
+ALTER TABLE `factionspawns`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `fines`
+--
+ALTER TABLE `fines`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `flags`
+--
+ALTER TABLE `flags`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `gates`
+--
+ALTER TABLE `gates`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `houses`
+--
+ALTER TABLE `houses`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `house_furnitures`
+--
+ALTER TABLE `house_furnitures`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `industry`
+--
+ALTER TABLE `industry`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_all`
+--
+ALTER TABLE `logs_all`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `logs_ban`
+--
+ALTER TABLE `logs_ban`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_connection`
+--
+ALTER TABLE `logs_connection`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_death`
+--
+ALTER TABLE `logs_death`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_jail`
+--
+ALTER TABLE `logs_jail`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_kick`
+--
+ALTER TABLE `logs_kick`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_mask`
+--
+ALTER TABLE `logs_mask`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `logs_spray`
+--
+ALTER TABLE `logs_spray`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `motd`
+--
+ALTER TABLE `motd`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `movedoors`
+--
+ALTER TABLE `movedoors`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `namechanges`
+--
+ALTER TABLE `namechanges`
+  ADD PRIMARY KEY (`namechangeid`);
+
+--
+-- Indexes for table `notifications`
+--
+ALTER TABLE `notifications`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `particles`
+--
+ALTER TABLE `particles`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `phone_contacts`
+--
+ALTER TABLE `phone_contacts`
+  ADD PRIMARY KEY (`contactID`);
+
+--
+-- Indexes for table `phone_sms`
+--
+ALTER TABLE `phone_sms`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `player_drugs`
+--
+ALTER TABLE `player_drugs`
+  ADD PRIMARY KEY (`idx`);
+
+--
+-- Indexes for table `points`
+--
+ALTER TABLE `points`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `radio`
+--
+ALTER TABLE `radio`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `radio_station`
+--
+ALTER TABLE `radio_station`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `signal_tower`
+--
+ALTER TABLE `signal_tower`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `spraylocations`
+--
+ALTER TABLE `spraylocations`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `ucp_friends`
+--
+ALTER TABLE `ucp_friends`
+  ADD PRIMARY KEY (`ID`);
+
+--
+-- Indexes for table `ucp_logins`
+--
+ALTER TABLE `ucp_logins`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- Indexes for table `vehicles`
+--
+ALTER TABLE `vehicles`
+  ADD PRIMARY KEY (`vehicleID`);
+
+--
+-- Indexes for table `vehicle_drugs`
+--
+ALTER TABLE `vehicle_drugs`
+  ADD PRIMARY KEY (`idx`);
+
+--
+-- Indexes for table `weapon`
+--
+ALTER TABLE `weapon`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- AUTO_INCREMENT for dumped tables
+--
+
+--
+-- AUTO_INCREMENT for table `accounts`
+--
+ALTER TABLE `accounts`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
+
+--
+-- AUTO_INCREMENT for table `advertisement`
+--
+ALTER TABLE `advertisement`
+  MODIFY `a_id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `apartments`
+--
+ALTER TABLE `apartments`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `application`
+--
+ALTER TABLE `application`
+  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `ateles`
+--
+ALTER TABLE `ateles`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `atms`
+--
+ALTER TABLE `atms`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `bans`
+--
+ALTER TABLE `bans`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `business`
+--
+ALTER TABLE `business`
+  MODIFY `biz_id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `business_furnitures`
+--
+ALTER TABLE `business_furnitures`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `cars`
+--
+ALTER TABLE `cars`
+  MODIFY `carID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `characters`
+--
+ALTER TABLE `characters`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
+
+--
+-- AUTO_INCREMENT for table `cheques`
+--
+ALTER TABLE `cheques`
+  MODIFY `id` int(6) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `clothing`
+--
+ALTER TABLE `clothing`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `criminal_record`
+--
+ALTER TABLE `criminal_record`
+  MODIFY `idx` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `damages`
+--
+ALTER TABLE `damages`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `emergency`
+--
+ALTER TABLE `emergency`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `factions`
+--
+ALTER TABLE `factions`
+  MODIFY `factionID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
+
+--
+-- AUTO_INCREMENT for table `factionspawns`
+--
+ALTER TABLE `factionspawns`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
+
+--
+-- AUTO_INCREMENT for table `fines`
+--
+ALTER TABLE `fines`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `flags`
+--
+ALTER TABLE `flags`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `gates`
+--
+ALTER TABLE `gates`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `houses`
+--
+ALTER TABLE `houses`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
+
+--
+-- AUTO_INCREMENT for table `house_furnitures`
+--
+ALTER TABLE `house_furnitures`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `industry`
+--
+ALTER TABLE `industry`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `logs_all`
+--
+ALTER TABLE `logs_all`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24;
+
+--
+-- AUTO_INCREMENT for table `logs_ban`
+--
+ALTER TABLE `logs_ban`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `logs_connection`
+--
+ALTER TABLE `logs_connection`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
+
+--
+-- AUTO_INCREMENT for table `logs_death`
+--
+ALTER TABLE `logs_death`
+  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
+
+--
+-- AUTO_INCREMENT for table `logs_jail`
+--
+ALTER TABLE `logs_jail`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `logs_kick`
+--
+ALTER TABLE `logs_kick`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `logs_mask`
+--
+ALTER TABLE `logs_mask`
+  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `logs_spray`
+--
+ALTER TABLE `logs_spray`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `motd`
+--
+ALTER TABLE `motd`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `movedoors`
+--
+ALTER TABLE `movedoors`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `namechanges`
+--
+ALTER TABLE `namechanges`
+  MODIFY `namechangeid` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `notifications`
+--
+ALTER TABLE `notifications`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `particles`
+--
+ALTER TABLE `particles`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `phone_contacts`
+--
+ALTER TABLE `phone_contacts`
+  MODIFY `contactID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `phone_sms`
+--
+ALTER TABLE `phone_sms`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `player_drugs`
+--
+ALTER TABLE `player_drugs`
+  MODIFY `idx` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `points`
+--
+ALTER TABLE `points`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `radio`
+--
+ALTER TABLE `radio`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `radio_station`
+--
+ALTER TABLE `radio_station`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `signal_tower`
+--
+ALTER TABLE `signal_tower`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `spraylocations`
+--
+ALTER TABLE `spraylocations`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `ucp_friends`
+--
+ALTER TABLE `ucp_friends`
+  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `ucp_logins`
+--
+ALTER TABLE `ucp_logins`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
+
+--
+-- AUTO_INCREMENT for table `vehicles`
+--
+ALTER TABLE `vehicles`
+  MODIFY `vehicleID` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `vehicle_drugs`
+--
+ALTER TABLE `vehicle_drugs`
+  MODIFY `idx` int(11) NOT NULL AUTO_INCREMENT;
+
+--
+-- AUTO_INCREMENT for table `weapon`
+--
+ALTER TABLE `weapon`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
+COMMIT;
+
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

BIN
roleplay.amx


+ 91 - 0
samp03/LICENSE

@@ -0,0 +1,91 @@
+------------------------------------------------------------------------------------
+
+The SA-MP modification for Grand Theft Auto: San Andreas (r) is a software project
+aimed at extending the functionality of the Grand Theft Auto: San Andreas (r)
+software for Microsoft Windows (r).
+
+------------------------------------------------------------------------------------
+
+SA-MP CLIENT AND SERVER SOFTWARE LICENSE AGREEMENT AND ATTRIBUTIONS
+
+
+---- LICENSE TERMS ----
+
+(a) You must have a valid license to use Grand Theft Auto: San Andreas (r) PC
+in order for this license to be valid.
+
+(b) The software contained herein is provided on an "as-is" basis without
+any form of warranty.
+
+(c) This software may not be exploited for personal, financial or 
+commercial gain.
+
+(d) The author(s) of this software accept no liability for use/misuse of the
+software.
+
+(e) The SA-MP software package may not be distributed, sold, rented or
+leased, without written permission of the software author(s).
+
+(f) You may not create or distribute derivative works of the software or files
+contained within the package.
+
+(g) You may not use this software for any illegal purposes.
+
+(h) The author(s) of this software retain the right to modify/revoke this license
+at any time under any conditions seen appropriate by the author(s).
+
+(i) Ideas expressed in this software by way of coding or configuration are
+property of SA-MP.com.
+
+
+------------------------------------------------------------------------------------
+
+(c) 2005-2010 SA-MP.com team.
+
+The SA-MP.com team is not affiliated with Rockstar Games, Rockstar North or 
+Take-Two Interactive Software Inc.
+
+Grand Theft Auto and Grand Theft Auto: San Andreas are registered trademarks of
+Take-Two Interactive Software Inc.
+
+------------------------------------------------------------------------------------
+
+
+---- ATTRIBUTIONS ----
+
+- This software makes use of the RakNet networking library (c) 2003 Kevin Jenkins
+- This software makes use of the Pawn language (c) ITB CompuPhase, 1997-2005
+- This software makes use of the ttmath library (c) 2006-2009, Tomasz Sowa
+
+*** ttmath LIBRARY LICENSE ***
+
+ Copyright (c) 2006-2009, Tomasz Sowa
+  All rights reserved.
+  
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+  
+    Redistributions of source code must retain the above copyright notice,
+     this list of conditions and the following disclaimer.
+     
+    Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+     
+    Neither the name Tomasz Sowa nor the names of contributors to this
+     project may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+ 
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+------------------------------------------------------------------------------------

+ 98 - 0
samp03/README

@@ -0,0 +1,98 @@
+SA-MP 0.3 Server Setup
+----------------------
+
+Once the configuration is complete, run> ./samp03svr & to start the server process.
+
+CONFIGURATION:
+
+Example server.cfg:
+	echo Executing Server Config...
+	lanmode 0
+	maxplayers 32
+	port 7777
+	hostname Unnamed Server
+	announce 0
+	gamemode0 lvdm 1
+	gamemode1 rivershell 1
+	weburl www.sa-mp.com
+	rcon_password changeme
+
+To configure the server, you must edit the values in server.cfg. They 
+are explained below:
+
+hostname
+--------
+	Parameters:
+		string
+	
+	Description:
+		Specifies the hostname shown in the server browser
+		
+port
+----
+	Parameters:
+		int
+	
+	Description:
+		Specifies the port to listen on.
+		This port is used for game connections, rcon 
+connections, and for querying.
+	
+maxplayers
+----------
+	Parameters:
+		int
+	
+	Description:
+		Specifies the maximum amount of players.
+		
+lanmode
+-------
+	Parameters:
+		int (0 or 1)
+		
+	Description:
+		Turns lanmode on (1) or off (0). Lanmode (as the name 
+suggests) is for use on LAN games, where bandwidth is not a problem. 
+Lanmode sends data at a higher rate, for a smoother game.
+		
+
+announce
+-------
+	Parameters:
+		int (0 or 1)
+		
+	Description:
+		Announces your server to the 'Internet' server list in 
+the SA:MP browser. On (1) or Off (0).
+
+weburl
+------
+	Parameters:
+		string
+	
+	Description:
+		Specifies the URL shown in the server browser, which is 
+associated to the server.
+		
+rcon_password
+-------------
+	Parameters:
+		string
+		
+	Description:
+		Specifies the password needed to connect to rcon, or 
+login to rcon ingame.
+		
+gamemode0 - gamemode15
+----------------------
+	Parameters:
+		string
+		int
+		
+	Description:
+		Specifies the rotation settings. The first parameter 
+sets the game mode name. The second is the number of times it will 
+repeat.
+		You can use gamemode0 to specify the first gamemode, 
+gamemode1 to specify the second, etc.

BIN
samp03/announce


BIN
samp03/filterscripts/adminspec.amx


+ 121 - 0
samp03/filterscripts/adminspec.pwn

@@ -0,0 +1,121 @@
+//
+//  ADMIN SPECTATE FILTER SCRIPT
+//  kye 2007
+//
+
+#pragma tabsize 0
+#include <a_samp>
+#include <core>
+#include <float>
+
+#include "../include/gl_common.inc"
+
+#define COLOR_GREY 0xAFAFAFAA
+#define COLOR_GREEN 0x33AA33AA
+#define COLOR_RED 0xAA3333AA
+#define COLOR_YELLOW 0xFFFF00AA
+#define COLOR_WHITE 0xFFFFFFFF
+
+//------------------------------------------------------------------------------------------------------
+
+#define ADMIN_SPEC_TYPE_NONE 0
+#define ADMIN_SPEC_TYPE_PLAYER 1
+#define ADMIN_SPEC_TYPE_VEHICLE 2
+
+new gSpectateID[MAX_PLAYERS];
+new gSpectateType[MAX_PLAYERS];
+
+//------------------------------------------------------------------------------------------------------
+
+public OnFilterScriptInit()
+{
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
+{
+	// IF ANYONE IS SPECTATING THIS PLAYER, WE'LL ALSO HAVE
+	// TO CHANGE THEIR INTERIOR ID TO MATCH
+	new x = 0;
+	while(x!=MAX_PLAYERS) {
+	    if( IsPlayerConnected(x) &&	GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
+			gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_PLAYER )
+   		{
+   		    SetPlayerInterior(x,newinteriorid);
+		}
+		x++;
+	}
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new specplayerid, specvehicleid, idx;
+
+	// WE ONLY DEAL WITH COMMANDS FROM ADMINS IN THIS FILTERSCRIPT
+	if(!IsPlayerAdmin(playerid)) return 0;
+
+	cmd = strtok(cmdtext, idx);
+
+	// SPECTATE A PLAYER
+ 	if(strcmp(cmd, "/specplayer", true) == 0) {
+	    new tmp[256];
+		tmp = strtok(cmdtext, idx);
+
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
+			return 1;
+		}
+		specplayerid = strval(tmp);
+		
+		if(!IsPlayerConnected(specplayerid)) {
+		    SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
+			return 1;
+		}
+		
+		TogglePlayerSpectating(playerid, 1);
+		PlayerSpectatePlayer(playerid, specplayerid);
+		SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
+		gSpectateID[playerid] = specplayerid;
+		gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
+		
+ 		return 1;
+	}
+
+	// SPECTATE A VEHICLE
+ 	if(strcmp(cmd, "/specvehicle", true) == 0) {
+	    new tmp[256];
+		tmp = strtok(cmdtext, idx);
+
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specvehicle [vehicleid]");
+			return 1;
+		}
+		specvehicleid = strval(tmp);
+		
+		if(specvehicleid < MAX_VEHICLES) {
+			TogglePlayerSpectating(playerid, 1);
+			PlayerSpectateVehicle(playerid, specvehicleid);
+			gSpectateID[playerid] = specvehicleid;
+			gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
+		}
+ 		return 1;
+	}
+
+	// STOP SPECTATING
+ 	if(strcmp(cmd, "/specoff", true) == 0) {
+		TogglePlayerSpectating(playerid, 0);
+		gSpectateID[playerid] = INVALID_PLAYER_ID;
+		gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
+		return 1;
+	}
+
+	return 0;
+}
+
+//------------------------------------------------------------------------------------------------------
+
+

BIN
samp03/filterscripts/base.amx


+ 151 - 0
samp03/filterscripts/base.pwn

@@ -0,0 +1,151 @@
+//
+// Base FS
+// Contains /pm /kick /ban commands.
+//
+
+#include <a_samp>
+#include "../include/gl_common.inc"
+
+#define ADMINFS_MESSAGE_COLOR 0xFF444499
+#define PM_INCOMING_COLOR     0xFFFF22AA
+#define PM_OUTGOING_COLOR     0xFFCC2299
+
+//------------------------------------------------
+
+public OnFilterScriptInit()
+{
+	print("\n--Base FS loaded.\n");
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new	tmp[256];
+	new Message[256];
+	new gMessage[256];
+	new pName[MAX_PLAYER_NAME+1];
+	new iName[MAX_PLAYER_NAME+1];
+	new	idx;
+	
+	cmd = strtok(cmdtext, idx);
+
+	// PM Command
+	if(strcmp("/pm", cmd, true) == 0)
+	{
+		tmp = strtok(cmdtext,idx);
+		
+		if(!strlen(tmp) || strlen(tmp) > 5) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /pm (id) (message)");
+			return 1;
+		}
+		
+		new id = strval(tmp);
+        gMessage = strrest(cmdtext,idx);
+        
+		if(!strlen(gMessage)) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /pm (id) (message)");
+			return 1;
+		}
+		
+		if(!IsPlayerConnected(id)) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/pm : Bad player ID");
+			return 1;
+		}
+		
+		if(playerid != id) {
+			GetPlayerName(id,iName,sizeof(iName));
+			GetPlayerName(playerid,pName,sizeof(pName));
+			format(Message,sizeof(Message),">> %s(%d): %s",iName,id,gMessage);
+			SendClientMessage(playerid,PM_OUTGOING_COLOR,Message);
+			format(Message,sizeof(Message),"** %s(%d): %s",pName,playerid,gMessage);
+			SendClientMessage(id,PM_INCOMING_COLOR,Message);
+			PlayerPlaySound(id,1085,0.0,0.0,0.0);
+			
+			printf("PM: %s",Message);
+			
+		}
+		else {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"You cannot PM yourself");
+		}
+		return 1;
+	}
+
+	//Kick Command
+	if(strcmp("/kick", cmd, true) == 0)
+	{
+	    if(IsPlayerAdmin(playerid)) {
+			tmp = strtok(cmdtext,idx);
+			if(!strlen(tmp) || strlen(tmp) > 5) {
+				return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /kick (id) [reason]");
+			}
+			
+			new id = strval(tmp);
+
+			if(!IsPlayerConnected(id)) {
+				SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : Bad player ID");
+				return 1;
+			}
+			
+			gMessage = strrest(cmdtext,idx);
+			
+			GetPlayerName(id,iName,sizeof(iName));
+			SendClientMessage(id,ADMINFS_MESSAGE_COLOR,"-- You have been kicked from the server.");
+
+			if(strlen(gMessage) > 0) {
+				format(Message,sizeof(Message),"Reason: %s",gMessage);
+				SendClientMessage(id,ADMINFS_MESSAGE_COLOR,Message);
+			}
+			
+			format(Message,sizeof(Message),">> %s(%d) has been kicked.",iName,id);
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,Message);
+			
+			Kick(id);
+			return 1;
+		} else {
+            SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : You are not an admin");
+			return 1;
+		}
+	}
+
+	//Ban Command
+	if(strcmp("/ban", cmd, true) == 0)
+	{
+	    if(IsPlayerAdmin(playerid)) {
+			tmp = strtok(cmdtext,idx);
+			if(!strlen(tmp) || strlen(tmp) > 5) {
+				return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /ban (id) [reason]");
+			}
+
+			new id = strval(tmp);
+
+			if(!IsPlayerConnected(id)) {
+				SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/ban : Bad player ID");
+				return 1;
+			}
+
+			gMessage = strrest(cmdtext,idx);
+
+			GetPlayerName(id,iName,sizeof(iName));
+			SendClientMessage(id,ADMINFS_MESSAGE_COLOR,"-- You have been banned from the server.");
+
+			if(strlen(gMessage) > 0) {
+				format(Message,sizeof(Message),"Reason: %s",gMessage);
+				SendClientMessage(id,ADMINFS_MESSAGE_COLOR,Message);
+			}
+
+			format(Message,sizeof(Message),">> %s(%d) has been banned.",iName,id);
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,Message);
+
+			Ban(id);
+			return 1;
+		} else {
+            SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/ban : You are not an admin");
+			return 1;
+		}
+	}
+	
+	return 0;
+}

BIN
samp03/filterscripts/baseaf.amx


+ 235 - 0
samp03/filterscripts/baseaf.pwn

@@ -0,0 +1,235 @@
+//
+// Base FS for Sanandreas Multiplayer 0.3
+// Contains /pm /kick /ban commands - it also features
+// a basic anti flood system, and admin chatting for rcon admins
+// using # <message>
+
+#include <a_samp>
+#include "../include/gl_common.inc"
+
+#define ADMINFS_MESSAGE_COLOR 0xFF444499
+#define PM_INCOMING_COLOR     0xFFFF22AA
+#define PM_OUTGOING_COLOR     0xFFCC2299
+
+static iPlayerChatTime[MAX_PLAYERS];
+static szPlayerChatMsg[MAX_PLAYERS][128];
+
+//------------------------------------------------
+
+stock IsPlayerFlooding(playerid)
+{
+	if(GetTickCount() - iPlayerChatTime[playerid] < 2000)
+	    return 1;
+
+	return 0;
+}
+
+//------------------------------------------------
+
+public OnFilterScriptInit()
+{
+	print("\n--Base FS loaded.\n");
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerText(playerid, text[])
+{
+	// Is the player flooding?
+	if(IsPlayerFlooding(playerid) && !IsPlayerAdmin(playerid))
+	{
+	    SendClientMessage(playerid, 0xFF0000FF, "* You can only send a message once every two seconds.");
+	    return 0;
+	}
+
+	// Now we handle the admin chat, will be #<message>.
+	if( (text[0] == '#' || text[0] == '@') && strlen(text) > 1)
+	{
+		new str[128];
+		new szPlayerName[MAX_PLAYER_NAME];
+		GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
+
+		if(IsPlayerAdmin(playerid))
+		{
+		    format(str, 128, "Admin %s: %s", szPlayerName, text[1]);
+
+			for(new iPlayerID; iPlayerID < MAX_PLAYERS; iPlayerID++)
+			{
+				if(!IsPlayerConnected(iPlayerID)) continue;
+		    	if(!IsPlayerAdmin(iPlayerID)) continue;
+			    SendClientMessage(iPlayerID, PM_INCOMING_COLOR, str);
+			}
+		}
+
+		return 0;
+	}
+
+	// Okay, now it's time for anti repeating.
+	if(!IsPlayerAdmin(playerid))
+	{
+		if(strlen(text) == strlen(szPlayerChatMsg[playerid]) && !strcmp(szPlayerChatMsg[playerid], text,  false))
+		{
+			SendClientMessage(playerid, 0xFF0000FF, "* Please do not repeat yourself.");
+			format(szPlayerChatMsg[playerid], 128, "%s", text);
+		    return 0;
+		}
+	}
+
+	format(szPlayerChatMsg[playerid], 128, "%s", text);
+    iPlayerChatTime[playerid] = GetTickCount();
+    return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerDisconnect(playerid, reason)
+{
+	#pragma unused reason
+
+	iPlayerChatTime[playerid] = 0;
+	szPlayerChatMsg[playerid] = "";
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+
+	if(IsPlayerFlooding(playerid) && !IsPlayerAdmin(playerid))
+	{
+		SendClientMessage(playerid, 0xFF0000FF, "* You can only use commands once every two seconds.");
+	    return 1;
+	}
+
+	iPlayerChatTime[playerid] = GetTickCount();
+
+	new cmd[256];
+	new	tmp[256];
+	new Message[256];
+	new gMessage[256];
+	new pName[MAX_PLAYER_NAME+1];
+	new iName[MAX_PLAYER_NAME+1];
+	new	idx;
+
+	cmd = strtok(cmdtext, idx);
+
+	// PM Command
+	if(strcmp("/pm", cmd, true) == 0)
+	{
+		tmp = strtok(cmdtext,idx);
+
+		if(!strlen(tmp) || strlen(tmp) > 5) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /pm (id) (message)");
+			return 1;
+		}
+
+		new id = strval(tmp);
+        gMessage = strrest(cmdtext,idx);
+
+		if(!strlen(gMessage)) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /pm (id) (message)");
+			return 1;
+		}
+
+		if(!IsPlayerConnected(id)) {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/pm : Bad player ID");
+		}
+
+		if(playerid != id) {
+			GetPlayerName(id,iName,sizeof(iName));
+			GetPlayerName(playerid,pName,sizeof(pName));
+			format(Message,sizeof(Message),">> %s(%d): %s",iName,id,gMessage);
+			SendClientMessage(playerid,PM_OUTGOING_COLOR,Message);
+			format(Message,sizeof(Message),"** %s(%d): %s",pName,playerid,gMessage);
+			SendClientMessage(id,PM_INCOMING_COLOR,Message);
+			PlayerPlaySound(id,1085,0.0,0.0,0.0);
+
+			printf("PM: %s",Message);
+
+		}
+		else {
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"You cannot PM yourself");
+		}
+		return 1;
+	}
+
+	//Kick Command
+	if(strcmp("/kick", cmd, true) == 0)
+	{
+	    if(IsPlayerAdmin(playerid)) {
+			tmp = strtok(cmdtext,idx);
+			if(!strlen(tmp) || strlen(tmp) > 5) {
+				return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /kick (id) [reason]");
+			}
+
+			new id = strval(tmp);
+
+			if(!IsPlayerConnected(id)) {
+				SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : Bad player ID");
+				return 1;
+			}
+
+			gMessage = strrest(cmdtext,idx);
+
+			GetPlayerName(id,iName,sizeof(iName));
+			SendClientMessage(id,ADMINFS_MESSAGE_COLOR,"-- You have been kicked from the server.");
+
+			if(strlen(gMessage) > 0) {
+				format(Message,sizeof(Message),"Reason: %s",gMessage);
+				SendClientMessage(id,ADMINFS_MESSAGE_COLOR,Message);
+			}
+
+			format(Message,sizeof(Message),">> %s(%d) has been kicked.",iName,id);
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,Message);
+
+			Kick(id);
+			return 1;
+		} else {
+            SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : You are not an admin");
+			return 1;
+		}
+	}
+
+	//Ban Command
+	if(strcmp("/ban", cmd, true) == 0)
+	{
+	    if(IsPlayerAdmin(playerid)) {
+			tmp = strtok(cmdtext,idx);
+			if(!strlen(tmp) || strlen(tmp) > 5) {
+				return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /ban (id) [reason]");
+			}
+
+			new id = strval(tmp);
+
+			if(!IsPlayerConnected(id)) {
+				SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/ban : Bad player ID");
+				return 1;
+			}
+
+			gMessage = strrest(cmdtext,idx);
+
+			GetPlayerName(id,iName,sizeof(iName));
+			SendClientMessage(id,ADMINFS_MESSAGE_COLOR,"-- You have been banned from the server.");
+
+			if(strlen(gMessage) > 0) {
+				format(Message,sizeof(Message),"Reason: %s",gMessage);
+				SendClientMessage(id,ADMINFS_MESSAGE_COLOR,Message);
+			}
+
+			format(Message,sizeof(Message),">> %s(%d) has been banned.",iName,id);
+			SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,Message);
+
+			Ban(id);
+			return 1;
+		} else {
+            SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/ban : You are not an admin");
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+//-----------------------------------------------

BIN
samp03/filterscripts/fsdebug.amx


+ 2099 - 0
samp03/filterscripts/fsdebug.pwn

@@ -0,0 +1,2099 @@
+/* SA:MP PAWN Debug -
+ *  Debugging Filterscript used
+ *  for creation of gamemode.
+ *
+ *  Simon Campbell
+ *  10/03/2007, 6:31pm
+*/
+
+//==============================================================================
+
+#include <a_samp>
+
+#undef KEY_UP
+#undef KEY_DOWN
+#undef KEY_LEFT
+#undef KEY_RIGHT
+
+#define KEY_UP  	65408
+#define KEY_DOWN	128
+#define KEY_LEFT    65408
+#define KEY_RIGHT   128
+
+#define DEBUG_VERSION   "0.5c"
+
+#define SKIN_SELECT   	true
+#define	VEHI_SELECT   	true
+#define WORL_SELECT     true
+#define CAME_SELECT     true
+#define OBJE_SELECT		true
+
+#define MISCEL_CMDS     true
+#define ADMINS_ONLY     false
+
+#define SKIN_SEL_STAT   1
+#define VEHI_SEL_STAT   2
+#define WORL_SEL_STAT   3
+#define CAME_SEL_STAT   4
+#define OBJE_SEL_STAT	5
+
+#define COLOR_RED   	0xFF4040FF
+#define COLOR_GREEN 	0x40FF40FF
+#define COLOR_BLUE  	0x4040FFFF
+
+#define COLOR_CYAN  	0x40FFFFFF
+#define COLOR_PINK  	0xFF40FFFF
+#define COLOR_YELLOW    0xFFFF40FF
+
+#define COLOR_WHITE		0xFFFFFFFF
+#define COLOR_BLACK		0x000000FF
+#define COLOR_NONE      0x00000000
+
+#define MIN_SKIN_ID		0
+#define MAX_SKIN_ID		299
+
+#define MIN_VEHI_ID		400
+#define MAX_VEHI_ID		611
+
+#define MIN_TIME_ID		0
+#define MAX_TIME_ID		23
+
+#define MIN_WEAT_ID     0
+#define MAX_WEAT_ID		45
+
+#define MIN_OBJE_ID		615
+#define MAX_OBJE_ID		13563
+
+#define DEFAULT_GRA     0.008
+
+#define VEHI_DIS        5.0
+#define OBJE_DIS		10.0
+
+#define CMODE_A			0
+#define CMODE_B			1
+
+#define O_MODE_SELECTOR	0
+#define O_MODE_MOVER	1
+#define O_MODE_ROTATOR	2
+
+#define PI				3.14159265
+
+#define CAMERA_TIME     40
+
+#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
+
+//==============================================================================
+
+new gPlayerStatus[MAX_PLAYERS]; // Player Status
+new gPlayerTimers[MAX_PLAYERS]; // Player TimerID's for keypresses
+new gWorldStatus[3] =  {12, 4}; // Time, Weather
+
+new curPlayerSkin[MAX_PLAYERS]				= {MIN_SKIN_ID, ...}; // Current Player Skin ID
+new curPlayerVehM[MAX_PLAYERS]				= {MIN_VEHI_ID, ...}; // Current Player Vehicle ID
+new curPlayerVehI[MAX_PLAYERS]				= {-1, ...};
+
+enum E_OBJECT
+{
+	OBJ_MOD,
+	OBJ_MDL,
+	Float:OBJ_X,
+	Float:OBJ_Y,
+	Float:OBJ_Z,
+	Float:OBJ_RX,
+	Float:OBJ_RY,
+	Float:OBJ_RZ
+}
+
+enum E_OBJ_RATE
+{
+	Float:OBJ_RATE_ROT,
+	Float:OBJ_RATE_MOVE
+}
+
+new pObjectRate[ MAX_PLAYERS ][ E_OBJ_RATE ];
+new curPlayerObjM[ MAX_PLAYERS ][ E_OBJECT ];
+new curPlayerObjI[ MAX_PLAYERS ]				= {-1, ...};
+
+enum P_CAMERA_D {
+	CMODE,
+	Float:RATE,
+	Float:CPOS_X,
+	Float:CPOS_Y,
+	Float:CPOS_Z,
+	Float:CLOO_X,
+	Float:CLOO_Y,
+	Float:CLOO_Z
+};
+
+new curPlayerCamD[MAX_PLAYERS][P_CAMERA_D];
+
+enum CURVEHICLE {
+	bool:spawn,
+	vmodel,
+	vInt
+};
+
+new curServerVehP[MAX_VEHICLES][CURVEHICLE];
+
+new aSelNames[5][] = {			// Menu selection names
+	{"SkinSelect"},
+	{"VehicleSelect"},
+	{"WeatherSelect"},
+	{"CameraSelect"},
+	{"ObjectSelect"}
+};
+
+new aWeaponNames[][32] = {
+	{"Unarmed (Fist)"}, // 0
+	{"Brass Knuckles"}, // 1
+	{"Golf Club"}, // 2
+	{"Night Stick"}, // 3
+	{"Knife"}, // 4
+	{"Baseball Bat"}, // 5
+	{"Shovel"}, // 6
+	{"Pool Cue"}, // 7
+	{"Katana"}, // 8
+	{"Chainsaw"}, // 9
+	{"Purple Dildo"}, // 10
+	{"Big White Vibrator"}, // 11
+	{"Medium White Vibrator"}, // 12
+	{"Small White Vibrator"}, // 13
+	{"Flowers"}, // 14
+	{"Cane"}, // 15
+	{"Grenade"}, // 16
+	{"Teargas"}, // 17
+	{"Molotov"}, // 18
+	{" "}, // 19
+	{" "}, // 20
+	{" "}, // 21
+	{"Colt 45"}, // 22
+	{"Colt 45 (Silenced)"}, // 23
+	{"Desert Eagle"}, // 24
+	{"Normal Shotgun"}, // 25
+	{"Sawnoff Shotgun"}, // 26
+	{"Combat Shotgun"}, // 27
+	{"Micro Uzi (Mac 10)"}, // 28
+	{"MP5"}, // 29
+	{"AK47"}, // 30
+	{"M4"}, // 31
+	{"Tec9"}, // 32
+	{"Country Rifle"}, // 33
+	{"Sniper Rifle"}, // 34
+	{"Rocket Launcher"}, // 35
+	{"Heat-Seeking Rocket Launcher"}, // 36
+	{"Flamethrower"}, // 37
+	{"Minigun"}, // 38
+	{"Satchel Charge"}, // 39
+	{"Detonator"}, // 40
+	{"Spray Can"}, // 41
+	{"Fire Extinguisher"}, // 42
+	{"Camera"}, // 43
+	{"Night Vision Goggles"}, // 44
+	{"Infrared Vision Goggles"}, // 45
+	{"Parachute"}, // 46
+	{"Fake Pistol"} // 47
+};
+
+
+new aVehicleNames[212][] = {	// Vehicle Names - Betamaster
+	{"Landstalker"},
+	{"Bravura"},
+	{"Buffalo"},
+	{"Linerunner"},
+	{"Perrenial"},
+	{"Sentinel"},
+	{"Dumper"},
+	{"Firetruck"},
+	{"Trashmaster"},
+	{"Stretch"},
+	{"Manana"},
+	{"Infernus"},
+	{"Voodoo"},
+	{"Pony"},
+	{"Mule"},
+	{"Cheetah"},
+	{"Ambulance"},
+	{"Leviathan"},
+	{"Moonbeam"},
+	{"Esperanto"},
+	{"Taxi"},
+	{"Washington"},
+	{"Bobcat"},
+	{"Mr Whoopee"},
+	{"BF Injection"},
+	{"Hunter"},
+	{"Premier"},
+	{"Enforcer"},
+	{"Securicar"},
+	{"Banshee"},
+	{"Predator"},
+	{"Bus"},
+	{"Rhino"},
+	{"Barracks"},
+	{"Hotknife"},
+	{"Trailer 1"}, //artict1
+	{"Previon"},
+	{"Coach"},
+	{"Cabbie"},
+	{"Stallion"},
+	{"Rumpo"},
+	{"RC Bandit"},
+	{"Romero"},
+	{"Packer"},
+	{"Monster"},
+	{"Admiral"},
+	{"Squalo"},
+	{"Seasparrow"},
+	{"Pizzaboy"},
+	{"Tram"},
+	{"Trailer 2"}, //artict2
+	{"Turismo"},
+	{"Speeder"},
+	{"Reefer"},
+	{"Tropic"},
+	{"Flatbed"},
+	{"Yankee"},
+	{"Caddy"},
+	{"Solair"},
+	{"Berkley's RC Van"},
+	{"Skimmer"},
+	{"PCJ-600"},
+	{"Faggio"},
+	{"Freeway"},
+	{"RC Baron"},
+	{"RC Raider"},
+	{"Glendale"},
+	{"Oceanic"},
+	{"Sanchez"},
+	{"Sparrow"},
+	{"Patriot"},
+	{"Quad"},
+	{"Coastguard"},
+	{"Dinghy"},
+	{"Hermes"},
+	{"Sabre"},
+	{"Rustler"},
+	{"ZR-350"},
+	{"Walton"},
+	{"Regina"},
+	{"Comet"},
+	{"BMX"},
+	{"Burrito"},
+	{"Camper"},
+	{"Marquis"},
+	{"Baggage"},
+	{"Dozer"},
+	{"Maverick"},
+	{"News Chopper"},
+	{"Rancher"},
+	{"FBI Rancher"},
+	{"Virgo"},
+	{"Greenwood"},
+	{"Jetmax"},
+	{"Hotring"},
+	{"Sandking"},
+	{"Blista Compact"},
+	{"Police Maverick"},
+	{"Boxville"},
+	{"Benson"},
+	{"Mesa"},
+	{"RC Goblin"},
+	{"Hotring Racer A"}, //hotrina
+	{"Hotring Racer B"}, //hotrinb
+	{"Bloodring Banger"},
+	{"Rancher"},
+	{"Super GT"},
+	{"Elegant"},
+	{"Journey"},
+	{"Bike"},
+	{"Mountain Bike"},
+	{"Beagle"},
+	{"Cropdust"},
+	{"Stunt"},
+	{"Tanker"}, //petro
+	{"Roadtrain"},
+	{"Nebula"},
+	{"Majestic"},
+	{"Buccaneer"},
+	{"Shamal"},
+	{"Hydra"},
+	{"FCR-900"},
+	{"NRG-500"},
+	{"HPV1000"},
+	{"Cement Truck"},
+	{"Tow Truck"},
+	{"Fortune"},
+	{"Cadrona"},
+	{"FBI Truck"},
+	{"Willard"},
+	{"Forklift"},
+	{"Tractor"},
+	{"Combine"},
+	{"Feltzer"},
+	{"Remington"},
+	{"Slamvan"},
+	{"Blade"},
+	{"Freight"},
+	{"Streak"},
+	{"Vortex"},
+	{"Vincent"},
+	{"Bullet"},
+	{"Clover"},
+	{"Sadler"},
+	{"Firetruck LA"}, //firela
+	{"Hustler"},
+	{"Intruder"},
+	{"Primo"},
+	{"Cargobob"},
+	{"Tampa"},
+	{"Sunrise"},
+	{"Merit"},
+	{"Utility"},
+	{"Nevada"},
+	{"Yosemite"},
+	{"Windsor"},
+	{"Monster A"}, //monstera
+	{"Monster B"}, //monsterb
+	{"Uranus"},
+	{"Jester"},
+	{"Sultan"},
+	{"Stratum"},
+	{"Elegy"},
+	{"Raindance"},
+	{"RC Tiger"},
+	{"Flash"},
+	{"Tahoma"},
+	{"Savanna"},
+	{"Bandito"},
+	{"Freight Flat"}, //freiflat
+	{"Streak Carriage"}, //streakc
+	{"Kart"},
+	{"Mower"},
+	{"Duneride"},
+	{"Sweeper"},
+	{"Broadway"},
+	{"Tornado"},
+	{"AT-400"},
+	{"DFT-30"},
+	{"Huntley"},
+	{"Stafford"},
+	{"BF-400"},
+	{"Newsvan"},
+	{"Tug"},
+	{"Trailer 3"}, //petrotr
+	{"Emperor"},
+	{"Wayfarer"},
+	{"Euros"},
+	{"Hotdog"},
+	{"Club"},
+	{"Freight Carriage"}, //freibox
+	{"Trailer 3"}, //artict3
+	{"Andromada"},
+	{"Dodo"},
+	{"RC Cam"},
+	{"Launch"},
+	{"Police Car (LSPD)"},
+	{"Police Car (SFPD)"},
+	{"Police Car (LVPD)"},
+	{"Police Ranger"},
+	{"Picador"},
+	{"S.W.A.T. Van"},
+	{"Alpha"},
+	{"Phoenix"},
+	{"Glendale"},
+	{"Sadler"},
+	{"Luggage Trailer A"}, //bagboxa
+	{"Luggage Trailer B"}, //bagboxb
+	{"Stair Trailer"}, //tugstair
+	{"Boxville"},
+	{"Farm Plow"}, //farmtr1
+	{"Utility Trailer"} //utiltr1
+};
+
+//==============================================================================
+
+forward SkinSelect(playerid);
+forward VehicleSelect(playerid);
+forward WorldSelect(playerid);
+forward CameraSelect(playerid);
+forward ObjectSelect( playerid );
+
+//==============================================================================
+
+dcmd_debug(playerid, params[]) {
+	if(strcmp(params, "help", true, 4) == 0) {
+		SendClientMessage(playerid, COLOR_BLUE, "[DEBUG]: Debug Mode 0.2 - HELP");
+		SendClientMessage(playerid, COLOR_CYAN, "[DEBUG]: Debug Mode 0.2 is a filterscript which allows scripters");
+		SendClientMessage(playerid, COLOR_CYAN, "[DEBUG]: or people who wish to explore SA:MP 0.2\'s features to have access");
+		SendClientMessage(playerid, COLOR_CYAN, "[DEBUG]: to many commands and \"menu\'s\".");
+		SendClientMessage(playerid, COLOR_YELLOW, "[DEBUG]: This filterscript was designed for SA:MP version 0.2");
+		SendClientMessage(playerid, COLOR_PINK, "[DEBUG]: For the command list type \"/debug commands\"");
+
+		return true;
+	}
+	if(strcmp(params, "commands", true, 8) == 0) {
+	    SendClientMessage(playerid, COLOR_BLUE, "[DEBUG]: Debug Mode 0.2 - COMMANDS");
+	    SendClientMessage(playerid, COLOR_CYAN, "[WORLD]: /w, /weather, /t, /time, /wsel, /g, /gravity");
+	    SendClientMessage(playerid, COLOR_CYAN, "[VEHICLES]: /v, /vehicle, /vsel");
+	    SendClientMessage(playerid, COLOR_CYAN, "[PLAYER]: /s, /skin, /ssel, /weapon, /w2");
+	    SendClientMessage(playerid, COLOR_CYAN, "[PLAYER]: /goto, /warpto, /bring, /setloc");
+	    SendClientMessage(playerid, COLOR_CYAN, "[CAMERA]: /camera, /csel");
+
+	    return true;
+	}
+
+	if(strcmp(params, "dump", true, 4) == 0) {
+	    SendClientMessage(playerid, COLOR_GREEN, "[SUCCESS]: All current server data dumped to a file.");
+	    new File:F_DUMP = fopen("DEBUG-DUMP.txt", io_append);
+	    if(F_DUMP) {
+	        new h, m, s, Y, M, D, cString[256];
+
+			getdate(Y, M, D);
+			gettime(h, m, s);
+
+	        format(cString, 256, "// %d-%d-%d @ %d:%d:%d\r\n", D, M, Y, h, m, s);
+	        fwrite(F_DUMP, cString);
+
+	    	for(new i = 0; i < MAX_VEHICLES; i++) {
+				if(curServerVehP[i][spawn] 	== true) {
+				    new Float:vx, Float:vy, Float:vz, Float:va;
+				    GetVehiclePos(i, vx, vy, vz);
+				    GetVehicleZAngle(i, va);
+					format(cString, 256, "CreateVehicle(%d, %f, %f, %f, %f, -1, -1, 5000); // Interior(%d), %s\r\n", curServerVehP[i][vmodel], vx, vy, vz, va, curServerVehP[i][vInt], aVehicleNames[curServerVehP[i][vmodel] - MIN_VEHI_ID]);
+					fwrite(F_DUMP, cString);
+	        	}
+	    	}
+	    	print("** Dumped current server information.");
+	    	fclose(F_DUMP);
+	    }
+	    else {
+			print("** Failed to create the file \"DEBUG-DUMP.txt\".\n");
+	    }
+	    return true;
+	}
+	return false;
+}
+
+#if CAME_SELECT == true
+
+dcmd_object(playerid, params[])
+{
+	new cString[ 128 ], idx;
+	cString = strtok( params, idx );
+
+	if ( !strlen( cString ) || !strlen( params[ idx + 1 ] ) )
+	{
+	    SendClientMessage( playerid, COLOR_WHITE, "[USAGE]: /object [RRATE/MRATE/CAMERA] [RATE/ID]");
+
+	    return 1;
+	}
+
+	if ( strcmp( cString, "rrate", true ) == 0 )
+	{
+	    pObjectRate[ playerid ][ OBJ_RATE_ROT ] = floatstr( params[ idx + 1 ] );
+
+	    format( cString, 128, "[SUCCESS]: Object rotation rate changed to %f.", pObjectRate[ playerid ][ OBJ_RATE_ROT ] );
+		SendClientMessage( playerid, COLOR_GREEN, cString );
+
+		return 1;
+	}
+
+	if ( strcmp( cString, "mrate", true ) == 0 )
+	{
+	    pObjectRate[ playerid ][ OBJ_RATE_MOVE ] = floatstr( params[ idx + 1 ] );
+
+	    format( cString, 128, "[SUCCESS]: Object movement rate changed to %f.", pObjectRate[ playerid ][ OBJ_RATE_MOVE ] );
+	    SendClientMessage( playerid, COLOR_GREEN, cString );
+
+	    return 1;
+	}
+
+	if ( strcmp( cString, "mode", true ) == 0 )
+	{
+	    new fuck = strval( params[ idx + 1 ] );
+
+	    if ( fuck >= O_MODE_SELECTOR || fuck <= O_MODE_ROTATOR )
+	    {
+		    curPlayerObjM[ playerid ][ OBJ_MOD ] = fuck;
+
+		    switch ( fuck )
+		    {
+		    	case O_MODE_SELECTOR: SendClientMessage( playerid, COLOR_GREEN, "[SUCCESS]: Object mode changed to Object Selection." );
+		    	case O_MODE_MOVER: SendClientMessage( playerid, COLOR_GREEN, "[SUCCESS]: Object mode changed to Object Mover." );
+		    	case O_MODE_ROTATOR: SendClientMessage( playerid, COLOR_GREEN, "[SUCCESS]: Object mode changed to Object Rotator." );
+			}
+
+			return 1;
+		}
+		else
+		{
+		    SendClientMessage( playerid, COLOR_RED, "[ERROR]: Invalid modeid." );
+
+		    return 1;
+		}
+	}
+
+	if ( strcmp( cString, "focus", true ) == 0 )
+	{
+		new objectid = strval( params[ idx + 1 ] );
+
+		if ( !IsValidObject( objectid ) )
+		{
+			SendClientMessage( playerid, COLOR_RED, "[ERROR]: Enter a valid objectid." );
+
+			return 1;
+		}
+
+		else
+		{
+			curPlayerObjI[ playerid ] = objectid;
+
+			GetObjectPos( objectid, curPlayerObjM[ playerid ][ OBJ_X ], curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ] );
+			GetObjectRot( objectid, curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ] );
+
+		   	curPlayerCamD[playerid][CPOS_X] = curPlayerObjM[ playerid ][ OBJ_X ] + 5.0;
+			curPlayerCamD[playerid][CPOS_Y] = curPlayerObjM[ playerid ][ OBJ_Y ] - 20.0;
+			curPlayerCamD[playerid][CPOS_Z] = curPlayerObjM[ playerid ][ OBJ_Z ] + 30.0;
+
+			curPlayerCamD[playerid][CLOO_X] = curPlayerObjM[ playerid ][ OBJ_X ];
+			curPlayerCamD[playerid][CLOO_Y] = curPlayerObjM[ playerid ][ OBJ_Y ];
+			curPlayerCamD[playerid][CLOO_Z] = curPlayerObjM[ playerid ][ OBJ_Z ];
+
+			if ( gPlayerStatus[ playerid ] == OBJE_SEL_STAT )
+			{
+				SetPlayerCameraPos( playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z] );
+            	SetPlayerCameraLookAt( playerid, curPlayerObjM[ playerid ][ OBJ_X ], curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ] );
+			}
+
+			return 1;
+		}
+	}
+
+	if ( strcmp( cString, "camera", true ) == 0 )
+	{
+	    new cameraid = strval( params[ idx + 1 ] );
+
+		if ( cameraid >= 0 && cameraid < 4 )
+		{
+		    switch ( cameraid )
+		    {
+		        case 0:
+		        {
+		            curPlayerCamD[playerid][CPOS_X] = curPlayerObjM[ playerid ][ OBJ_X ] + 7.0;
+					curPlayerCamD[playerid][CPOS_Y] = curPlayerObjM[ playerid ][ OBJ_Y ] - 20.0;
+					curPlayerCamD[playerid][CPOS_Z] = curPlayerObjM[ playerid ][ OBJ_Z ] + 30.0;
+		        }
+
+		        case 1:
+		        {
+		            curPlayerCamD[playerid][CPOS_X] = curPlayerObjM[ playerid ][ OBJ_X ] + 7.0;
+					curPlayerCamD[playerid][CPOS_Y] = curPlayerObjM[ playerid ][ OBJ_Y ] + 15.0;
+					curPlayerCamD[playerid][CPOS_Z] = curPlayerObjM[ playerid ][ OBJ_X ] + 15.0;
+		        }
+
+		        case 2:
+		        {
+		            curPlayerCamD[playerid][CPOS_X] = curPlayerObjM[ playerid ][ OBJ_X ] - 20.0;
+					curPlayerCamD[playerid][CPOS_Y] = curPlayerObjM[ playerid ][ OBJ_Y ] + 20.0;
+					curPlayerCamD[playerid][CPOS_Z] = curPlayerObjM[ playerid ][ OBJ_X ] + 20.0;
+		        }
+
+		        case 3:
+		        {
+		            curPlayerCamD[playerid][CPOS_X] = curPlayerObjM[ playerid ][ OBJ_X ] - 10.0;
+					curPlayerCamD[playerid][CPOS_Y] = curPlayerObjM[ playerid ][ OBJ_Y ] + 25.0;
+					curPlayerCamD[playerid][CPOS_Z] = curPlayerObjM[ playerid ][ OBJ_X ] + 15.0;
+		        }
+		    }
+
+		    SetPlayerCameraPos( playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z] );
+            SetPlayerCameraLookAt( playerid, curPlayerObjM[ playerid ][ OBJ_X ], curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ] );
+
+			return 1;
+		}
+		else
+		{
+		    SendClientMessage( playerid, COLOR_RED, "[ERROR]: Invalid object camera id.");
+
+		    return 1;
+		}
+	}
+	return 0;
+}
+
+dcmd_osel(playerid, params[])
+{
+	#pragma unused params
+
+	new cString[ 128 ];
+
+	if ( gPlayerStatus[ playerid ] != 0 )
+	{
+		format( cString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[ gPlayerStatus[ playerid ] - 1 ] );
+		SendClientMessage(playerid, COLOR_RED, cString);
+
+		return 1;
+	}
+
+	new Float:a;
+
+	gPlayerStatus[playerid] = OBJE_SEL_STAT;
+
+	GetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	curPlayerCamD[playerid][CPOS_Z] += 5.0;
+	SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	GetXYInFrontOfPlayer(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], OBJE_DIS);
+
+	curPlayerCamD[playerid][CLOO_Z] = curPlayerCamD[playerid][CPOS_Z] - 5.0;
+
+	SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+
+	TogglePlayerControllable(playerid, 0);
+
+	GetPlayerFacingAngle(playerid, a);
+
+	curPlayerObjM[ playerid ][ OBJ_X ] = curPlayerCamD[playerid][CLOO_X];
+	curPlayerObjM[ playerid ][ OBJ_Y ] = curPlayerCamD[playerid][CLOO_Y];
+	curPlayerObjM[ playerid ][ OBJ_Z ] = curPlayerCamD[playerid][CLOO_Z];
+	curPlayerObjM[ playerid ][ OBJ_RX ] = 0.0;
+	curPlayerObjM[ playerid ][ OBJ_RY ] = 0.0;
+	curPlayerObjM[ playerid ][ OBJ_RZ ] = 0.0;
+
+	curPlayerObjI[ playerid ] = CreateObject( curPlayerObjM[ playerid ][ OBJ_MDL ], curPlayerObjM[ playerid ][ OBJ_X ],
+		curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ],
+		curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ]
+	);
+
+	gPlayerTimers[ playerid ] = SetTimerEx("ObjectSelect", 200, 1, "i", playerid);
+
+	return 1;
+}
+
+dcmd_camera(playerid, params[]) {
+	new idx; new cString[128];
+
+	cString = strtok(params, idx);
+
+	if (!strlen(cString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /camera [RATE/MODE] [RATE/MODEID]");
+
+	    return true;
+	}
+
+	if (strcmp(cString, "rate", true, 4) == 0) {
+	    curPlayerCamD[playerid][RATE] = floatstr(params[idx+1]);
+
+	    return true;
+	}
+
+	if (strcmp(cString, "mode", true, 4) == 0) {
+	    curPlayerCamD[playerid][CMODE] = strval(params[idx+1]);
+
+	    return true;
+	}
+
+	return true;
+}
+
+dcmd_csel(playerid, params[]) {
+	#pragma unused params
+
+	new cString[128];
+
+	if (gPlayerStatus[playerid] != 0) {
+		format(cString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[gPlayerStatus[playerid] - 1]);
+		SendClientMessage(playerid, COLOR_RED, cString);
+
+		return true;
+	}
+
+	gPlayerStatus[playerid] = CAME_SEL_STAT;
+
+    TogglePlayerControllable(playerid, 0);
+
+	GetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	GetXYInFrontOfPlayer(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], 5.0);
+
+	curPlayerCamD[playerid][CLOO_Z] = curPlayerCamD[playerid][CPOS_Z];
+
+	gPlayerTimers[playerid] = SetTimerEx("CameraSelect", 200, 1, "i", playerid);
+
+	return true;
+}
+
+#endif
+
+#if WORL_SELECT == true
+dcmd_g(playerid, params[]) {
+	new cString[128];
+
+	if (!strlen(params[0]))
+	{
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /g GRAVITY or /gravity GRAVITY");
+	    return true;
+	}
+
+	new Float:grav = floatstr(params[0]);
+
+	SetGravity(grav);
+
+	format(cString, 128, "[SUCCESS]: World gravity changed to %f", grav);
+	SendClientMessage(playerid, COLOR_GREEN, cString);
+
+	return true;
+}
+
+dcmd_gravity(playerid, params[])
+	return dcmd_g(playerid, params);
+
+dcmd_w(playerid, params[]) {
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /w WEATHERID or /weather WEATHERID");
+	    return true;
+	}
+
+	idx = strval(iString);
+
+	if (idx < MIN_WEAT_ID || idx > MAX_WEAT_ID) {
+	    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid WEATHERID");
+	    return true;
+	}
+
+	gWorldStatus[1] = idx;
+
+	SetWeather(idx);
+
+	format(iString, 128, "[SUCCESS]: Weather has changed to WEATHERID %d", idx);
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_weather(playerid, params[])
+	return dcmd_w(playerid, params);
+
+dcmd_t(playerid, params[]) {
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /t HOUR or /time HOUR");
+	    return true;
+	}
+
+	idx = strval(iString);
+
+	if (idx < MIN_TIME_ID || idx > MAX_TIME_ID) {
+	    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid HOUR");
+	    return true;
+	}
+
+	gWorldStatus[0] = idx;
+
+	SetWorldTime(idx);
+
+	format(iString, 128, "[SUCCESS]: Time has changed to HOUR %d", idx);
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_time(playerid, params[])
+	return dcmd_t(playerid, params);
+
+dcmd_wsel(playerid, params[]) {
+	#pragma unused params
+
+	new cString[128];
+
+	if (gPlayerStatus[playerid] != 0) {
+		format(cString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[gPlayerStatus[playerid] - 1]);
+		SendClientMessage(playerid, COLOR_RED, cString);
+		return true;
+	}
+
+	new Float:x, Float:y, Float:z;
+
+	gPlayerStatus[playerid] = WORL_SEL_STAT;
+
+	GetPlayerPos(playerid, x, y, z);
+	SetPlayerCameraPos(playerid, x, y, z + 40.0);
+
+	GetXYInFrontOfPlayer(playerid, x, y, 100.0);
+
+	SetPlayerCameraLookAt(playerid, x, y, z + 5.0);
+
+	TogglePlayerControllable(playerid, 0);
+
+	gPlayerTimers[playerid] = SetTimerEx("WorldSelect", 200, 1, "i", playerid);
+
+	GameTextForPlayer(playerid, "WorldSelect", 1500, 3);
+
+	return true;
+}
+#endif
+
+#if VEHI_SELECT == true
+
+dcmd_v(playerid, params[])
+{
+	new
+		idx,
+		iString[ 128 ];
+
+	if ( gPlayerStatus[ playerid ] != 0 )
+	{
+		format				( iString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[ gPlayerStatus[ playerid ] - 1 ] );
+		SendClientMessage	( playerid, COLOR_RED, iString );
+
+		return true;
+	}
+
+	if ( params[ 0 ] == '\0' )	// Same effect as a !strlen check.
+		return SendClientMessage( playerid, COLOR_RED, "[USAGE]: /v MODELID/NAME or /vehicle MODELID/NAME" );
+
+	//***************
+	// Fix by Mike! *
+	//***************
+
+	idx = GetVehicleModelIDFromName( params );
+
+	if( idx == -1 )
+	{
+		idx = strval(iString);
+
+		if ( idx < MIN_VEHI_ID || idx > MAX_VEHI_ID )
+			return SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid MODELID/NAME");
+	}
+
+	new
+		Float:x,
+		Float:y,
+		Float:z,
+		Float:a;
+
+	GetPlayerPos(playerid, x, y, z);
+	GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
+	GetPlayerFacingAngle(playerid, a);
+
+	curPlayerVehM[playerid] = idx;
+
+	curPlayerVehI[playerid] = CreateVehicle(idx, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
+	LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));
+
+ 	curServerVehP[curPlayerVehI[playerid]][spawn] 	= true;
+	curServerVehP[curPlayerVehI[playerid]][vmodel]	= idx;
+	curServerVehP[curPlayerVehI[playerid]][vInt]    = GetPlayerInterior(playerid);
+
+	format(iString, 128, "[SUCCESS]: Spawned a \"%s\" (MODELID: %d, VEHICLEID: %d)", aVehicleNames[idx - MIN_VEHI_ID], idx, curPlayerVehI[playerid]);
+
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_vehicle(playerid, params[])
+	return dcmd_v(playerid, params);
+
+dcmd_vsel(playerid, params[])
+{
+	// /vsel allows players to select a vehicle using playerkeys.
+	#pragma unused params
+
+	new cString[128];
+
+	if (gPlayerStatus[playerid] != 0) {
+		format(cString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[gPlayerStatus[playerid] - 1]);
+		SendClientMessage(playerid, COLOR_RED, cString);
+		return true;
+	}
+
+	new Float:x, Float:y, Float:z, Float:a;
+
+	gPlayerStatus[playerid] = VEHI_SEL_STAT;
+
+	GetPlayerPos(playerid, x, y, z);
+	SetPlayerCameraPos(playerid, x, y, z + 3.0);
+
+	GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
+	SetPlayerCameraLookAt(playerid, x, y, z);
+
+	TogglePlayerControllable(playerid, 0);
+
+	GetPlayerFacingAngle(playerid, a);
+
+	curPlayerVehI[playerid] = CreateVehicle(curPlayerVehM[playerid], x, y, z + 2.0, a + 90.0, -1, -1, 5000);
+	printf( "vsel vehicle start id = %d", curPlayerVehI[playerid] );
+
+	LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));
+
+ 	curServerVehP[curPlayerVehI[playerid]][spawn] 	= true;
+	curServerVehP[curPlayerVehI[playerid]][vmodel]	= curPlayerVehM[playerid];
+	curServerVehP[curPlayerVehI[playerid]][vInt]    = GetPlayerInterior(playerid);
+
+	gPlayerTimers[playerid] = SetTimerEx("VehicleSelect", 200, 1, "i", playerid);
+
+	return true;
+}
+
+#endif
+
+#if SKIN_SELECT == true
+
+dcmd_ssel(playerid, params[])
+{
+	// /ssel allows players to select a skin using playerkeys.
+	#pragma unused params
+
+	new cString[128];
+
+	if (gPlayerStatus[playerid] != 0) {
+		format(cString, 128, "[ERROR]: You are already using \"%s\".", aSelNames[gPlayerStatus[playerid] - 1]);
+		SendClientMessage(playerid, COLOR_RED, cString);
+		return true;
+	}
+
+	new Float:x, Float:y, Float:z;
+
+	gPlayerStatus[playerid] = SKIN_SEL_STAT;
+
+	GetPlayerPos(playerid, x, y, z);
+	SetPlayerCameraLookAt(playerid, x, y, z);
+
+	GetXYInFrontOfPlayer(playerid, x, y, 3.5);
+	SetPlayerCameraPos(playerid, x, y, z);
+
+	TogglePlayerControllable(playerid, 0);
+
+	gPlayerTimers[playerid] = SetTimerEx("SkinSelect", 200, 1, "i", playerid);
+
+	return true;
+}
+
+dcmd_s(playerid, params[])
+{
+    // /s SKINID allows players to directly select a skin using it's ID.
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /s SKINID");
+	    return true;
+	}
+
+	idx = strval(iString);
+
+	if (IsInvalidSkin(idx) || idx < MIN_SKIN_ID || idx > MAX_SKIN_ID) {
+	    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid SKINID");
+	    return true;
+	}
+
+	SetPlayerSkin(playerid, idx);
+	curPlayerSkin[playerid] = idx;
+	format(iString, 128, "[SUCCESS]: Changed skin to SKINID %d", idx);
+
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_skin(playerid, params[])
+{
+	dcmd_s(playerid, params);
+
+	return true;
+}
+
+#endif
+
+#if MISCEL_CMDS == true
+dcmd_goto(playerid, params[])
+{
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /goto PLAYERID (X_OFFSET Y_OFFSET Z_OFFSET)");
+	    return true;
+	}
+
+	new ID = strval(iString);
+
+	if (!IsPlayerConnected(ID)) {
+	    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Not connected PLAYERID.");
+	    return true;
+	}
+
+	new Float:X, Float:Y, Float:Z;
+	new Interior = GetPlayerInterior(ID);
+
+	GetPlayerPos(ID, X, Y, Z);
+
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    GetXYInFrontOfPlayer(ID, X, Y, 1.5);
+	    SetPlayerInterior(playerid, Interior);
+		SetPlayerPos(playerid, X, Y, Z);
+
+		GetPlayerName(ID, iString, 128);
+		format(iString, 128, "[SUCCESS]: You have warped to %s (ID: %d).", iString, ID);
+		SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	    return true;
+	}
+
+	X += floatstr(iString);
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    goto fwarpto;
+	}
+
+	Y += floatstr(iString);
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    goto fwarpto;
+	}
+
+	Z += floatstr(iString);
+
+	fwarpto:
+
+	new pVID = GetPlayerVehicleID( playerid );
+
+	if ( pVID )
+	{
+	    SetVehiclePos( pVID, X, Y, Z );
+	    LinkVehicleToInterior( pVID, Interior );
+	}
+	else
+	{
+		SetPlayerPos( playerid, X, Y, Z);
+	}
+
+	SetPlayerInterior( playerid, Interior);
+
+	GetPlayerName(ID, iString, 128);
+	format(iString, 128, "[SUCCESS]: You have warped to %s (ID: %d).", iString, ID);
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_warpto(playerid, params[])
+{
+	dcmd_goto(playerid, params);
+
+	return true;
+}
+
+dcmd_setloc(playerid, params[])
+{
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /setloc X Y Z INTERIOR");
+	    return true;
+	}
+
+	new Float:X, Float:Y, Float:Z;
+	new Interior;
+
+	X = floatstr(iString);
+	Y = floatstr(strtok(params,idx));
+	Z = floatstr(strtok(params,idx));
+	Interior = strval(strtok(params,idx));
+
+    new pVID = GetPlayerVehicleID( playerid );
+
+	if ( pVID )
+	{
+	    SetVehiclePos( pVID, X, Y, Z );
+	    LinkVehicleToInterior( pVID, Interior );
+	}
+	else
+	{
+		SetPlayerPos( playerid, X, Y, Z );
+	}
+
+	SetPlayerInterior(playerid, Interior);
+
+	return true;
+
+
+}
+
+dcmd_bring(playerid, params[])
+{
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /bring PLAYERID (X_OFFSET Y_OFFSET Z_OFFSET)");
+	    return true;
+	}
+
+	new ID = strval(iString);
+
+	if (!IsPlayerConnected(ID)) {
+	    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Not connected PLAYERID.");
+	    return true;
+	}
+
+	new Float:X, Float:Y, Float:Z;
+	new Interior = GetPlayerInterior(playerid);
+
+	GetPlayerPos(playerid, X, Y, Z);
+
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    GetXYInFrontOfPlayer(playerid, X, Y, 1.5);
+	    SetPlayerInterior(ID, Interior);
+		SetPlayerPos(ID, X, Y, Z);
+
+		GetPlayerName(ID, iString, 128);
+		format(iString, 128, "[SUCCESS]: You have brought %s (ID: %d) to you.", iString, ID);
+		SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	    return true;
+	}
+
+	X += floatstr(iString);
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    goto fbring;
+	}
+
+	Y += floatstr(iString);
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    goto fbring;
+	}
+
+	Z += floatstr(iString);
+
+	fbring:
+
+	new pVID = GetPlayerVehicleID( ID );
+
+	if ( pVID )
+	{
+	    SetVehiclePos( pVID, X, Y, Z );
+	    LinkVehicleToInterior( pVID, Interior );
+	}
+	else
+	{
+		SetPlayerPos( ID, X, Y, Z );
+	}
+
+	SetPlayerInterior(ID, Interior);
+
+	GetPlayerName(ID, iString, 128);
+	format(iString, 128, "[SUCCESS]: You have brought %s (ID: %d) to you.", iString, ID);
+	SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+
+dcmd_weapon(playerid, params[])
+{
+	dcmd_w2(playerid, params);
+
+	return true;
+}
+
+dcmd_w2(playerid, params[])
+{
+	new idx, iString[128];
+	iString = strtok(params, idx);
+
+	if (!strlen(iString)) {
+	    SendClientMessage(playerid, COLOR_RED, "[USAGE]: /w2 WEAPONID/NAME (AMMO) or /weapon WEAPONID/NAME (AMMO)");
+	    return true;
+	}
+
+	new weaponid = GetWeaponModelIDFromName(iString);
+
+	if (weaponid == -1) {
+		weaponid = strval(iString);
+		if (weaponid < 0 || weaponid > 47) {
+	    	SendClientMessage(playerid, COLOR_RED, "[ERROR]: Invalid WEAPONID/NAME");
+	    	return true;
+		}
+	}
+
+	if (!strlen(params[idx+1])) {
+	    GivePlayerWeapon(playerid, weaponid, 500);
+
+	    format(iString, 128, "[SUCCESS]: You were given weapon %s (ID: %d) with 500 ammo.", aWeaponNames[weaponid], weaponid);
+	    SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	    return true;
+	}
+
+	idx = strval(params[idx+1]);
+
+    GivePlayerWeapon(playerid, weaponid, idx);
+
+    format(iString, 128, "[SUCCESS]: You were given weapon %s (ID: %d) with %d ammo.", aWeaponNames[weaponid], weaponid, idx);
+    SendClientMessage(playerid, COLOR_GREEN, iString);
+
+	return true;
+}
+#endif
+
+public OnFilterScriptInit()
+{
+	print("\n  *********************\n  * SA:MP DEBUG 0.2   *");
+	print("  * By Simon Campbell *\n  *********************");
+	printf("  * Version: %s      *\n  *********************", DEBUG_VERSION);
+	print("  * -- LOADED         *\n  *********************\n");
+
+	for ( new i = 0; i < MAX_PLAYERS; i++ )
+	{
+		curPlayerObjM[ i ][ OBJ_MDL ] = MIN_OBJE_ID;
+		pObjectRate[ i ][ OBJ_RATE_ROT ] = 1.0;
+		pObjectRate[ i ][ OBJ_RATE_MOVE ] = 1.0;
+	}
+
+	AllowAdminTeleport(1);
+}
+
+public OnFilterScriptExit()
+{
+	print("\n  *********************\n  * SA:MP DEBUG 0.2   *");
+	print("  * -- SHUTDOWN       *\n  *********************\n");
+}
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	#if ADMINS_ONLY == true
+	if(IsPlayerAdmin(playerid)) {
+	#endif
+
+	#if SKIN_SELECT == true
+	dcmd(s, 1, cmdtext);
+	dcmd(ssel, 4, cmdtext);
+	dcmd(skin, 4, cmdtext);
+	#endif
+
+	#if VEHI_SELECT == true
+	dcmd(v, 1, cmdtext);
+	dcmd(vsel, 4, cmdtext);
+	dcmd(vehicle, 7, cmdtext);
+	#endif
+
+	#if WORL_SELECT == true
+	dcmd(w, 1, cmdtext);
+	dcmd(t, 1, cmdtext);
+	dcmd(g, 1, cmdtext);
+	dcmd(wsel, 4, cmdtext);
+	dcmd(time, 4, cmdtext);
+	dcmd(weather, 7, cmdtext);
+	dcmd(gravity, 7, cmdtext);
+	#endif
+
+	#if MISCEL_CMDS == true
+	dcmd(w2, 2, cmdtext);
+	dcmd(goto, 4, cmdtext);
+	dcmd(bring, 5, cmdtext);
+	dcmd(warpto, 6, cmdtext);
+	dcmd(weapon, 6, cmdtext);
+	dcmd(setloc, 6, cmdtext);
+	#endif
+
+	#if CAME_SELECT == true
+	dcmd(csel, 4, cmdtext);
+	dcmd(camera, 6, cmdtext);
+	#endif
+
+	dcmd(osel, 4, cmdtext);
+	dcmd(object, 6, cmdtext);
+	dcmd(debug, 5, cmdtext);
+
+	#if ADMINS_ONLY == true
+	}
+	#endif
+
+	return 0;
+}
+
+public OnPlayerDisconnect(playerid,reason)
+{
+	KillTimer(gPlayerTimers[playerid]);
+
+	gPlayerStatus[playerid] = 0;
+	gPlayerTimers[playerid] = 0;
+
+	curPlayerSkin[playerid] = MIN_SKIN_ID; // Current Player Skin ID
+	curPlayerVehM[playerid] = MIN_VEHI_ID; // Current Player Vehicle ID
+	curPlayerVehI[playerid] = -1;
+
+	return 0;
+}
+
+public OnPlayerConnect(playerid)
+{
+    curPlayerCamD[playerid][CMODE] = CMODE_A;
+    curPlayerCamD[playerid][RATE]  = 2.0;
+
+    #if ADMINS_ONLY == false
+	AllowPlayerTeleport(playerid, 1);
+	#endif
+
+	return 0;
+}
+
+//==============================================================================
+
+#if WORL_SELECT == true
+public WorldSelect(playerid)
+{   // Created by Simon
+	/*
+	// Make sure the player is not in world selection before continuing
+	if (gPlayerStatus[playerid] != WORL_SEL_STAT) {
+		KillTimer(skinTimerID[playerid]);
+        return;
+	}
+	*/
+
+	new keys, updown, leftright;
+
+    GetPlayerKeys(playerid, keys, updown, leftright);
+
+	new cString[128];
+
+	// Right key increases World Time
+	if (leftright == KEY_RIGHT) {
+		if(gWorldStatus[0] == MAX_TIME_ID) {
+			gWorldStatus[0] = MIN_TIME_ID;
+		}
+		else {
+			gWorldStatus[0]++;
+		}
+		format(cString, 128, "World Time: %d~n~Weather ID: %d", gWorldStatus[0], gWorldStatus[1]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+		SetWorldTime(gWorldStatus[0]);
+	}
+
+	// Left key decreases World Time
+	if (leftright == KEY_LEFT) {
+	    if(gWorldStatus[0] == MIN_TIME_ID) {
+	        gWorldStatus[0] = MAX_TIME_ID;
+	    }
+	    else {
+	        gWorldStatus[0]--;
+	    }
+		format(cString, 128, "World Time: %d~n~Weather ID: %d", gWorldStatus[0], gWorldStatus[1]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+		SetWorldTime(gWorldStatus[0]);
+	}
+
+	// Up key increases Weather ID
+	if(updown == KEY_UP) {
+		if(gWorldStatus[1] == MAX_WEAT_ID) {
+			gWorldStatus[1] = MIN_WEAT_ID;
+		}
+		else {
+		        gWorldStatus[1]++;
+		}
+		format(cString, 128, "World Time: %d~n~Weather ID: %d", gWorldStatus[0], gWorldStatus[1]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+		SetWeather(gWorldStatus[1]);
+	}
+
+	// Down key decreases Weather ID
+	if(updown == KEY_DOWN) {
+		if(gWorldStatus[1] == MIN_WEAT_ID) {
+			gWorldStatus[1] = MAX_WEAT_ID;
+		}
+		else {
+		        gWorldStatus[1]--;
+		}
+		format(cString, 128, "World Time: %d~n~Weather ID: %d", gWorldStatus[0], gWorldStatus[1]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+		SetWeather(gWorldStatus[1]);
+	}
+
+	// Action key exits WorldSelection
+	if(keys & KEY_ACTION) {
+		SetCameraBehindPlayer(playerid);
+		TogglePlayerControllable(playerid, 1);
+
+		format(cString, 128, "[SUCCESS]: Time changed to %d hours and weather changed to WEATHERID %d", gWorldStatus[0], gWorldStatus[1]);
+		SendClientMessage(playerid, COLOR_GREEN, cString);
+
+		new File:F_WORLD = fopen("TIME-WEATHER.txt", io_append);
+
+		if(F_WORLD) {
+		    new h, m, s, Y, M, D;
+
+			getdate(Y, M, D);
+			gettime(h, m, s);
+
+			format(cString, 128, "// %d-%d-%d @ %d:%d:%d\r\nSetWeather(%d);\r\nSetWorldTime(%d);\r\n", D, M, Y, h, m, s);
+
+			fwrite(F_WORLD, cString);
+			fclose(F_WORLD);
+			printf("\n%s\n",cString);
+		}
+		else {
+			print("Failed to create the file \"TIME-WEATHER.txt\".\n");
+		}
+
+		gPlayerStatus[playerid] = 0;
+		KillTimer(gPlayerTimers[playerid]);
+
+		return;
+	}
+}
+
+#endif
+
+#if SKIN_SELECT == true
+public SkinSelect(playerid)
+{   // Created by Simon
+	/*
+	// Make sure the player is not in skin selection before continuing
+	if (gPlayerStatus[playerid] != SKIN_SEL_STAT) {
+		KillTimer(skinTimerID[playerid]);
+        return;
+	}
+	*/
+
+	new keys, updown, leftright;
+
+    GetPlayerKeys(playerid, keys, updown, leftright);
+
+	new cString[128];
+
+	// Right key increases Skin ID
+	if (leftright == KEY_RIGHT) {
+		if(curPlayerSkin[playerid] == MAX_SKIN_ID) {
+			curPlayerSkin[playerid] = MIN_SKIN_ID;
+		}
+		else {
+  			curPlayerSkin[playerid]++;
+	    }
+		while(IsInvalidSkin(curPlayerSkin[playerid])) {
+			curPlayerSkin[playerid]++;
+		}
+
+  		format(cString, 128, "Skin ID: %d", curPlayerSkin[playerid]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+	    SetPlayerSkin(playerid, curPlayerSkin[playerid]);
+	}
+
+	// Left key decreases Skin ID
+	if(leftright == KEY_LEFT) {
+ 		if(curPlayerSkin[playerid] == MIN_SKIN_ID) {
+			curPlayerSkin[playerid] = MAX_SKIN_ID;
+		}
+		else {
+			curPlayerSkin[playerid]--;
+		}
+		while(IsInvalidSkin(curPlayerSkin[playerid])) {
+			curPlayerSkin[playerid]--;
+		}
+
+		format(cString, 128, "Skin ID: %d", curPlayerSkin[playerid]);
+  		GameTextForPlayer(playerid, cString, 1500, 3);
+  		SetPlayerSkin(playerid, curPlayerSkin[playerid]);
+	}
+
+	// Action key exits skin selection
+	if(keys & KEY_ACTION)
+	{
+		SetCameraBehindPlayer(playerid);
+		TogglePlayerControllable(playerid, 1);
+
+		format(cString, 128, "[SUCCESS]: You have changed to SKINID %d", curPlayerSkin[playerid]);
+		SendClientMessage(playerid, COLOR_GREEN, cString);
+
+		gPlayerStatus[playerid] = 0;
+		KillTimer(gPlayerTimers[playerid]);
+	}
+}
+#endif
+
+#if CAME_SELECT == true
+public CameraSelect(playerid)
+{
+	// CMODE_A 0	Up/Down = IncreaseZ/DecreaseZ; Left/Right = IncreaseX/DecreaseX; Num4/Num6 = IncreaseY/DecreaseY
+	// CMODE_B 1	Up/Down = Rotate Up/Down; Left/Right = Rotate Left/Right; Num4/Num6 = Move Left/Right
+
+	new keys, updown, leftright;
+
+	GetPlayerKeys(playerid, keys, updown, leftright);
+
+	printf("Player (%d) keys = %d, updown = %d, leftright = %d", playerid, keys, updown, leftright);
+
+	if (curPlayerCamD[playerid][CMODE] == CMODE_A)
+	{
+	    if (leftright == KEY_RIGHT) {
+	        curPlayerCamD[playerid][CPOS_X] += curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_X] += curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+	 	}
+
+		if (leftright == KEY_LEFT) {
+	        curPlayerCamD[playerid][CPOS_X] -= curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_X] -= curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+
+		if (updown == KEY_UP) {
+			curPlayerCamD[playerid][CPOS_Z] += curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_Z] += curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+
+		if (updown == KEY_DOWN) {
+  			curPlayerCamD[playerid][CPOS_Z] -= curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_Z] -= curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+
+		if (keys & KEY_ANALOG_RIGHT) {
+		    curPlayerCamD[playerid][CPOS_Y] += curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_Y] += curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+
+
+		if (keys & KEY_ANALOG_LEFT) {
+		    curPlayerCamD[playerid][CPOS_Y] -= curPlayerCamD[playerid][RATE];
+	        curPlayerCamD[playerid][CLOO_Y] -= curPlayerCamD[playerid][RATE];
+
+	        SetPlayerPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+
+	        SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+	}
+
+
+	if(curPlayerCamD[playerid][CMODE] == CMODE_B)
+	{
+	    if (leftright == KEY_RIGHT) {
+	        // Rotate Y +
+   		}
+
+   		if (leftright == KEY_LEFT) {
+   		    // Rotate Y -
+   		}
+
+   		if (updown == KEY_UP) {
+   		    // Rotate X +
+   		}
+
+   		if (updown == KEY_DOWN) {
+   		    // Rotate X -
+   		}
+
+   		if (keys & KEY_ANALOG_RIGHT) {
+   		    // Rotate Z +
+   		}
+
+   		if (keys & KEY_ANALOG_LEFT) {
+   		    // Rotate Z -
+   		}
+	}
+
+	if (keys & KEY_ACTION)
+	{
+	    SetCameraBehindPlayer(playerid);
+
+        new
+			File:F_CAMERA = fopen("CAMERA.txt", io_append);
+
+		if( F_CAMERA )
+		{
+ 			new
+				cString[512], h, m, s, Y, M, D;
+
+			getdate(Y, M, D);
+			gettime(h, m, s);
+
+			format(cString, sizeof( cString ), "// %d-%d-%d @ %d:%d:%d\r\nSetPlayerCameraPos(playerid, %f, %f, %f);\r\nSetPlayerCameraLookAt(playerid, %f, %f, %f);\r\n", D, M, Y, h, m, s,curPlayerCamD[playerid][CPOS_X],curPlayerCamD[playerid][CPOS_Y],curPlayerCamD[playerid][CPOS_Z],curPlayerCamD[playerid][CLOO_X],curPlayerCamD[playerid][CLOO_Y],curPlayerCamD[playerid][CLOO_Z]);
+
+			fwrite(F_CAMERA, cString);
+			fclose(F_CAMERA);
+
+			printf("\n%s\n",cString);
+
+			SendClientMessage( playerid, COLOR_GREEN, "Current camera data saved to 'CAMERA.txt'" );
+		}
+		else
+			print("Failed to create the file \"CAMERA.txt\".\n");
+
+		TogglePlayerControllable(playerid, 1);
+
+		KillTimer(gPlayerTimers[playerid]);
+
+		gPlayerStatus[playerid] = 0;
+	}
+}
+
+#endif
+
+#if VEHI_SELECT == true
+public VehicleSelect(playerid)
+{
+	/*
+	// Make sure the player is not in skin selection before continuing
+	if (gPlayerStatus[playerid] != VEHI_SEL_STAT) {
+		KillTimer(skinTimerID[playerid]);
+        return;
+	}
+	*/
+
+	new keys, updown, leftright;
+
+    GetPlayerKeys(playerid, keys, updown, leftright);
+
+	new cString[128];
+
+	// Right key increases Vehicle MODELID
+	if (leftright == KEY_RIGHT) {
+		if(curPlayerVehM[playerid] == MAX_VEHI_ID) {
+			curPlayerVehM[playerid] = MIN_VEHI_ID;
+		}
+		else {
+  			curPlayerVehM[playerid]++;
+	    }
+
+		format(cString, 128, "Model ID: %d~n~Vehicle Name: %s", curPlayerVehM, aVehicleNames[curPlayerVehM[playerid] - MIN_VEHI_ID]);
+    	GameTextForPlayer(playerid, cString, 1500, 3);
+
+    	new Float:x, Float:y, Float:z, Float:a;
+
+		GetPlayerPos(playerid, x, y, z);
+		GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
+		GetPlayerFacingAngle(playerid, a);
+
+		DestroyVehicle(curPlayerVehI[playerid]);
+		curServerVehP[curPlayerVehI[playerid]][spawn] 	= false;
+
+		curPlayerVehI[playerid] = CreateVehicle(curPlayerVehM[playerid], x, y, z + 2.0, a + 90.0, -1, -1, 5000);
+		printf( "vsel vehicle select id = %d", curPlayerVehI[playerid] );
+
+        LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));
+
+        curServerVehP[curPlayerVehI[playerid]][spawn] 	= true;
+		curServerVehP[curPlayerVehI[playerid]][vmodel]	= curPlayerVehM[playerid];
+		curServerVehP[curPlayerVehI[playerid]][vInt]    = GetPlayerInterior(playerid);
+	}
+
+	// Left key decreases Vehicle MODELID
+	if(leftright == KEY_LEFT) {
+ 		if(curPlayerVehM[playerid] == MIN_VEHI_ID) {
+			curPlayerVehM[playerid] = MAX_VEHI_ID;
+		}
+		else {
+			curPlayerVehM[playerid]--;
+		}
+
+		format(cString, 128, "Model ID: %d~n~Vehicle Name: %s", curPlayerVehM, aVehicleNames[curPlayerVehM[playerid] - MIN_VEHI_ID]);
+  		GameTextForPlayer(playerid, cString, 1500, 3);
+
+   		new Float:x, Float:y, Float:z, Float:a;
+
+		GetPlayerPos(playerid, x, y, z);
+		GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
+		GetPlayerFacingAngle(playerid, a);
+
+		DestroyVehicle(curPlayerVehI[playerid]);
+		curServerVehP[curPlayerVehI[playerid]][spawn] 	= false;
+
+		curPlayerVehI[playerid] = CreateVehicle(curPlayerVehM[playerid], x, y, z + 2.0, a + 90.0, -1, -1, 5000);
+		printf( "vsel vehicle select id = %d", curPlayerVehI[playerid] );
+
+		LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));
+
+ 		curServerVehP[curPlayerVehI[playerid]][spawn] 	= true;
+		curServerVehP[curPlayerVehI[playerid]][vmodel]	= curPlayerVehM[playerid];
+		curServerVehP[curPlayerVehI[playerid]][vInt]    = GetPlayerInterior(playerid);
+	}
+
+	// Action key exits vehicle selection
+	if(keys & KEY_ACTION)
+	{
+		SetCameraBehindPlayer(playerid);
+		TogglePlayerControllable(playerid, 1);
+
+		format(cString, 128, "[SUCCESS]: Spawned a \"%s\" (MODELID: %d, VEHICLEID: %d)", aVehicleNames[curPlayerVehM[playerid] - MIN_VEHI_ID], curPlayerVehM[playerid], curPlayerVehI[playerid]);
+		SendClientMessage(playerid, COLOR_GREEN, cString);
+
+		gPlayerStatus[playerid] = 0;
+		KillTimer(gPlayerTimers[playerid]);
+	}
+}
+#endif
+
+#if OBJE_SELECT == true
+public ObjectSelect( playerid )
+{
+	new keys, updown, leftright;
+
+    GetPlayerKeys( playerid, keys, updown, leftright );
+
+	new cString[ 128 ];
+
+	switch ( curPlayerObjM[ playerid ][ OBJ_MOD ] )
+	{
+		case O_MODE_SELECTOR:
+		{
+			if ( updown == KEY_UP)
+			{
+				curPlayerObjM[ playerid ][ OBJ_MDL ] += 10;
+
+				if ( curPlayerObjM[ playerid ][ OBJ_MDL ] >= MAX_OBJE_ID )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ] = MIN_OBJE_ID;
+				}
+
+				while ( !IsValidModel( curPlayerObjM[ playerid ][ OBJ_MDL ] ) )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ]++;
+				}
+
+				DestroyObject( curPlayerObjI[ playerid ] );
+				curPlayerObjI[ playerid ] = CreateObject( curPlayerObjM[ playerid ][ OBJ_MDL ], curPlayerObjM[ playerid ][ OBJ_X ],
+					curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ],
+					curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ]
+				);
+
+				format( cString, 128, "Model ID: %d", curPlayerObjM[ playerid ][ OBJ_MDL ] );
+  				GameTextForPlayer(playerid, cString, 1500, 3);
+			}
+
+			if ( updown == KEY_DOWN)
+			{
+				curPlayerObjM[ playerid ][ OBJ_MDL ] -= 10;
+
+				if ( curPlayerObjM[ playerid ][ OBJ_MDL ] <= MIN_OBJE_ID )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ] = MAX_OBJE_ID;
+				}
+
+				while ( !IsValidModel( curPlayerObjM[ playerid ][ OBJ_MDL ] ) )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ]--;
+				}
+
+				DestroyObject( curPlayerObjI[ playerid ] );
+				curPlayerObjI[ playerid ] = CreateObject( curPlayerObjM[ playerid ][ OBJ_MDL ], curPlayerObjM[ playerid ][ OBJ_X ],
+					curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ],
+					curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ]
+				);
+
+				format( cString, 128, "Model ID: %d", curPlayerObjM[ playerid ][ OBJ_MDL ] );
+  				GameTextForPlayer(playerid, cString, 1500, 3);
+			}
+
+			if ( leftright == KEY_LEFT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_MDL ]--;
+
+				if ( curPlayerObjM[ playerid ][ OBJ_MDL ] <= MIN_OBJE_ID )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ] = MAX_OBJE_ID;
+				}
+
+				while ( !IsValidModel( curPlayerObjM[ playerid ][ OBJ_MDL ] ) )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ]--;
+				}
+
+				DestroyObject( curPlayerObjI[ playerid ] );
+				curPlayerObjI[ playerid ] = CreateObject( curPlayerObjM[ playerid ][ OBJ_MDL ], curPlayerObjM[ playerid ][ OBJ_X ],
+					curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ],
+					curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ]
+				);
+
+				format( cString, 128, "Model ID: %d", curPlayerObjM[ playerid ][ OBJ_MDL ] );
+  				GameTextForPlayer(playerid, cString, 1500, 3);
+			}
+
+			if ( leftright == KEY_RIGHT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_MDL ]++;
+
+				if ( curPlayerObjM[ playerid ][ OBJ_MDL ] >= MAX_OBJE_ID )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ] = MIN_OBJE_ID;
+				}
+
+				while ( !IsValidModel( curPlayerObjM[ playerid ][ OBJ_MDL ] ) )
+				{
+					curPlayerObjM[ playerid ][ OBJ_MDL ]++;
+				}
+
+				DestroyObject( curPlayerObjI[ playerid ] );
+				curPlayerObjI[ playerid ] = CreateObject( curPlayerObjM[ playerid ][ OBJ_MDL ], curPlayerObjM[ playerid ][ OBJ_X ],
+					curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ],
+					curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ]
+				);
+
+				format( cString, 128, "Model ID: %d", curPlayerObjM[ playerid ][ OBJ_MDL ] );
+  				GameTextForPlayer(playerid, cString, 1500, 3);
+			}
+		}
+
+		case O_MODE_MOVER:
+		{
+			if ( updown == KEY_UP)
+			{
+				curPlayerObjM[ playerid ][ OBJ_Z ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_Z ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_Z ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			if ( updown == KEY_DOWN)
+			{
+				curPlayerObjM[ playerid ][ OBJ_Z ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_Z ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_Z ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			if ( leftright == KEY_LEFT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			if ( leftright == KEY_RIGHT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_Y ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_Y ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_Y ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			if ( keys & KEY_ANALOG_LEFT )
+			{
+				curPlayerObjM[ playerid ][ OBJ_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_Y ] -= pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			if ( keys & KEY_ANALOG_LEFT )
+			{
+				curPlayerObjM[ playerid ][ OBJ_X ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+				curPlayerCamD[ playerid ][ CPOS_X ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+	        	curPlayerCamD[ playerid ][ CLOO_X ] += pObjectRate[ playerid ][ OBJ_RATE_MOVE ];
+			}
+
+			SetPlayerPos( playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z] );
+			SetObjectPos( curPlayerObjI[ playerid ], curPlayerObjM[ playerid ][ OBJ_X ], curPlayerObjM[ playerid ][ OBJ_Y ], curPlayerObjM[ playerid ][ OBJ_Z ] );
+			SetPlayerCameraPos(playerid, curPlayerCamD[playerid][CPOS_X], curPlayerCamD[playerid][CPOS_Y], curPlayerCamD[playerid][CPOS_Z]);
+	        SetPlayerCameraLookAt(playerid, curPlayerCamD[playerid][CLOO_X], curPlayerCamD[playerid][CLOO_Y], curPlayerCamD[playerid][CLOO_Z]);
+		}
+
+		case O_MODE_ROTATOR:
+		{
+			if ( updown == KEY_UP)
+			{
+				curPlayerObjM[ playerid ][ OBJ_RZ ] += pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+			}
+
+			if ( updown == KEY_DOWN)
+			{
+				curPlayerObjM[ playerid ][ OBJ_RZ ] -= pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+
+			}
+
+			if ( leftright == KEY_LEFT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_RY ] -= pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+			}
+
+			if ( leftright == KEY_RIGHT)
+			{
+				curPlayerObjM[ playerid ][ OBJ_RY ] += pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+			}
+
+			if ( keys & KEY_ANALOG_LEFT )
+			{
+				curPlayerObjM[ playerid ][ OBJ_RY ] -= pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+			}
+
+			if ( keys & KEY_ANALOG_LEFT )
+			{
+				curPlayerObjM[ playerid ][ OBJ_RX ] += pObjectRate[ playerid ][ OBJ_RATE_ROT ];
+			}
+
+			SetObjectRot( curPlayerObjI[ playerid ], curPlayerObjM[ playerid ][ OBJ_RX ], curPlayerObjM[ playerid ][ OBJ_RY ], curPlayerObjM[ playerid ][ OBJ_RZ ] );
+		}
+	}
+
+	if ( keys & KEY_ACTION )
+	{
+		gPlayerStatus[ playerid ] = 0;
+		TogglePlayerControllable( playerid, 1 );
+		SetCameraBehindPlayer( playerid );
+		KillTimer( gPlayerTimers[playerid] );
+	}
+
+}
+#endif
+
+IsInvalidSkin(skinid)
+{   // Created by Simon
+	// Checks whether the skinid parsed is crashable or not.
+
+	#define	MAX_BAD_SKINS   14
+
+	new badSkins[MAX_BAD_SKINS] = {
+		3, 4, 5, 6, 8, 42, 65, 74, 86,
+		119, 149, 208, 273, 289
+	};
+
+	for (new i = 0; i < MAX_BAD_SKINS; i++) {
+	    if (skinid == badSkins[i]) return true;
+	}
+
+	return false;
+}
+
+GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
+{	// Created by Y_Less
+
+	new Float:a;
+
+	GetPlayerPos(playerid, x, y, a);
+	GetPlayerFacingAngle(playerid, a);
+
+	if (GetPlayerVehicleID(playerid)) {
+	    GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
+	}
+
+	x += (distance * floatsin(-a, degrees));
+	y += (distance * floatcos(-a, degrees));
+}
+
+strtok(const string[], &index)
+{   // Created by Compuphase
+
+	new length = strlen(string);
+	while ((index < length) && (string[index] <= ' '))
+	{
+		index++;
+	}
+
+	new offset = index;
+	new result[20];
+	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
+	{
+		result[index - offset] = string[index];
+		index++;
+	}
+	result[index - offset] = EOS;
+	return result;
+}
+
+GetVehicleModelIDFromName(vname[])
+{
+	for(new i = 0; i < 211; i++)
+	{
+		if ( strfind(aVehicleNames[i], vname, true) != -1 )
+			return i + MIN_VEHI_ID;
+	}
+	return -1;
+}
+
+GetWeaponModelIDFromName(wname[])
+{
+    for(new i = 0; i < 48; i++) {
+        if (i == 19 || i == 20 || i == 21) continue;
+		if (strfind(aWeaponNames[i], wname, true) != -1) {
+			return i;
+		}
+	}
+	return -1;
+}
+
+IsValidModel(modelid)
+{
+	// Created by Y_Less.
+
+	static modeldat[] =
+	{
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,
+		-515899393, -134217729, -1, -1, 33554431, -1, -1, -1, -14337, -1, -33,
+		127, 0, 0, 0, 0, 0, -8388608, -1, -1, -1, -16385, -1, -1, -1, -1, -1,
+		-1, -1, -33, -1, -771751937, -1, -9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, 33554431, -25, -1, -1, -1, -1, -1, -1,
+		-1073676289, -2147483648, 34079999, 2113536, -4825600, -5, -1, -3145729,
+		-1, -16777217, -63, -1, -1, -1, -1, -201326593, -1, -1, -1, -1, -1,
+		-257, -1, 1073741823, -133122, -1, -1, -65, -1, -1, -1, -1, -1, -1,
+		-2146435073, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1073741823, -64, -1,
+		-1, -1, -1, -2635777, 134086663, 0, -64, -1, -1, -1, -1, -1, -1, -1,
+		-536870927, -131069, -1, -1, -1, -1, -1, -1, -1, -1, -16384, -1,
+		-33554433, -1, -1, -1, -1, -1, -1610612737, 524285, -128, -1,
+		2080309247, -1, -1, -1114113, -1, -1, -1, 66977343, -524288, -1, -1, -1,
+		-1, -2031617, -1, 114687, -256, -1, -4097, -1, -4097, -1, -1,
+		1010827263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32768, -1, -1, -1, -1, -1,
+		2147483647, -33554434, -1, -1, -49153, -1148191169, 2147483647,
+		-100781080, -262145, -57, 134217727, -8388608, -1, -1, -1, -1, -1, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1048577, -1, -449, -1017, -1, -1, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1835009, -2049, -1, -1, -1, -1, -1, -1,
+		-8193, -1, -536870913, -1, -1, -1, -1, -1, -87041, -1, -1, -1, -1, -1,
+		-1, -209860, -1023, -8388609, -2096897, -1, -1048577, -1, -1, -1, -1,
+		-1, -1, -897, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1610612737,
+		-3073, -28673, -1, -1, -1, -1537, -1, -1, -13, -1, -1, -1, -1, -1985,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1056964609, -1, -1, -1,
+		-1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-236716037, -1, -1, -1, -1, -1, -1, -1, -536870913, 3, 0, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-1, -1, -1, -1, -1, -2097153, -2109441, -1, 201326591, -4194304, -1, -1,
+		-241, -1, -1, -1, -1, -1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, -32768, -1, -1, -1, -2, -671096835, -1, -8388609, -66323585, -13,
+		-1793, -32257, -247809, -1, -1, -513, 16252911, 0, 0, 0, -131072,
+		33554383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8356095, 0, 0, 0, 0, 0,
+		0, -256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		-268435449, -1, -1, -2049, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+		92274627, -65536, -2097153, -268435457, 591191935, 1, 0, -16777216, -1,
+		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127
+	};
+	if ((modelid >= 0) && ((modelid / 32) < sizeof (modeldat)) && (modeldat[modelid / 32] & (1 << (modelid % 32))))
+	{
+	    return 1;
+	}
+	return 0;
+}

BIN
samp03/filterscripts/gl_actions.amx


+ 328 - 0
samp03/filterscripts/gl_actions.pwn

@@ -0,0 +1,328 @@
+//-------------------------------------------------
+//
+// Generic Special Actions And Anims
+// kyeman 2007
+//
+//-------------------------------------------------
+
+#include <a_samp>
+#include <core>
+#include <float>
+#pragma tabsize 0
+
+#include "../include/gl_common.inc"
+
+new gPlayerUsingLoopingAnim[MAX_PLAYERS];
+new gPlayerAnimLibsPreloaded[MAX_PLAYERS];
+
+new Text:txtAnimHelper;
+
+//-------------------------------------------------
+
+OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
+{
+	ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
+}
+
+//-------------------------------------------------
+
+LoopingAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
+{
+    gPlayerUsingLoopingAnim[playerid] = 1;
+    ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
+    TextDrawShowForPlayer(playerid,txtAnimHelper);
+}
+
+//-------------------------------------------------
+
+StopLoopingAnim(playerid)
+{
+	gPlayerUsingLoopingAnim[playerid] = 0;
+    ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
+}
+
+//-------------------------------------------------
+
+PreloadAnimLib(playerid, animlib[])
+{
+	ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
+}
+
+//-------------------------------------------------
+
+// ********** CALLBACKS **********
+
+public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
+{
+	if(!gPlayerUsingLoopingAnim[playerid]) return;
+
+	if(IsKeyJustDown(KEY_SPRINT,newkeys,oldkeys)) {
+	    StopLoopingAnim(playerid);
+        TextDrawHideForPlayer(playerid,txtAnimHelper);
+    }
+}
+
+//------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+	// if they die whilst performing a looping anim, we should reset the state
+	if(gPlayerUsingLoopingAnim[playerid]) {
+        gPlayerUsingLoopingAnim[playerid] = 0;
+        TextDrawHideForPlayer(playerid,txtAnimHelper);
+	}
+
+ 	return 1;
+}
+
+//-------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	if(!gPlayerAnimLibsPreloaded[playerid]) {
+   		PreloadAnimLib(playerid,"BOMBER");
+   		PreloadAnimLib(playerid,"RAPPING");
+    	PreloadAnimLib(playerid,"SHOP");
+   		PreloadAnimLib(playerid,"BEACH");
+   		PreloadAnimLib(playerid,"SMOKING");
+    	PreloadAnimLib(playerid,"FOOD");
+    	PreloadAnimLib(playerid,"ON_LOOKERS");
+    	PreloadAnimLib(playerid,"DEALER");
+		PreloadAnimLib(playerid,"CRACK");
+		PreloadAnimLib(playerid,"CARRY");
+		PreloadAnimLib(playerid,"COP_AMBIENT");
+		PreloadAnimLib(playerid,"PARK");
+		PreloadAnimLib(playerid,"INT_HOUSE");
+		PreloadAnimLib(playerid,"FOOD");
+		gPlayerAnimLibsPreloaded[playerid] = 1;
+	}
+	return 1;
+}
+
+//-------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+    gPlayerUsingLoopingAnim[playerid] = 0;
+	gPlayerAnimLibsPreloaded[playerid] = 0;
+	
+	return 1;
+}
+
+//-------------------------------------------------
+
+public OnFilterScriptInit()
+{
+	// Init our text display
+	txtAnimHelper = TextDrawCreate(610.0, 400.0,
+	"~r~~k~~PED_SPRINT~ ~w~to stop the animation");
+	TextDrawUseBox(txtAnimHelper, 0);
+	TextDrawFont(txtAnimHelper, 2);
+	TextDrawSetShadow(txtAnimHelper,0); // no shadow
+    TextDrawSetOutline(txtAnimHelper,1); // thickness 1
+    TextDrawBackgroundColor(txtAnimHelper,0x000000FF);
+    TextDrawColor(txtAnimHelper,0xFFFFFFFF);
+    TextDrawAlignment(txtAnimHelper,3); // align right
+}
+
+//-------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new idx;
+	new dancestyle;
+	cmd = strtok(cmdtext, idx);
+
+	if(strcmp(cmd,"/animlist",true)==0)
+	{
+		SendClientMessage(playerid,0xAFAFAFAA,"Available Animations:");
+	    SendClientMessage(playerid,0xAFAFAFAA,"/handsup /drunk /bomb /getarrested /laugh /lookout /robman");
+        SendClientMessage(playerid,0xAFAFAFAA,"/crossarms /lay /hide /vomit /eat /wave /taichi");
+        SendClientMessage(playerid,0xAFAFAFAA,"/deal /crack /smokem /smokef /groundsit /chat /dance /f**ku");
+	}
+	
+	if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
+        // We don't handle anything here that can be used InVehicle
+        return 0;
+	}
+
+	// HANDSUP
+ 	if(strcmp(cmd, "/handsup", true) == 0) {
+		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
+        return 1;
+    }
+    
+    // CELLPHONE IN
+ 	if(strcmp(cmd, "/cellin", true) == 0) {
+		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
+        return 1;
+    }
+    
+    // CELLPHONE OUT
+ 	if(strcmp(cmd, "/cellout", true) == 0) {
+		SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
+        return 1;
+    }
+
+    // Drunk
+    if(strcmp(cmd, "/drunk", true) == 0) {
+		LoopingAnim(playerid,"PED","WALK_DRUNK",4.0,1,1,1,1,0);
+		return 1;
+    }
+    
+	// Place a Bomb
+    if (strcmp("/bomb", cmdtext, true) == 0) {
+		ClearAnimations(playerid);
+		OnePlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); // Place Bomb
+		return 1;
+	}
+	// Police Arrest
+    if (strcmp("/getarrested", cmdtext, true, 7) == 0) {
+	      LoopingAnim(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); // Gun Arrest
+		  return 1;
+    }
+	// Laugh
+    if (strcmp("/laugh", cmdtext, true) == 0) {
+          OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh
+		  return 1;
+	}
+	// Rob Lookout
+    if (strcmp("/lookout", cmdtext, true) == 0) {
+          OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
+		  return 1;
+	}
+	// Rob Threat
+    if (strcmp("/robman", cmdtext, true) == 0) {
+          LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob
+		  return 1;
+	}
+	// Arms crossed
+    if (strcmp("/crossarms", cmdtext, true) == 0) {
+          LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed
+		  return 1;
+	}
+	// Lay Down
+    if (strcmp("/lay", cmdtext, true, 6) == 0) {
+          LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down
+		  return 1;
+    }
+	// Take Cover
+    if (strcmp("/hide", cmdtext, true, 3) == 0) {
+          LoopingAnim(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover
+		  return 1;
+	}
+	// Vomit
+    if (strcmp("/vomit", cmdtext, true) == 0) {
+	      OnePlayAnim(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit BAH!
+		  return 1;
+	}
+	// Eat Burger
+    if (strcmp("/eat", cmdtext, true) == 0) {
+	      OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
+		  return 1;
+	}
+	// Wave
+    if (strcmp("/wave", cmdtext, true) == 0) {
+	      LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave
+		  return 1;
+	}
+	// Slap Ass
+    if (strcmp("/slapass", cmdtext, true) == 0) {
+         OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); // Ass Slapping
+		  return 1;
+	}
+	// Dealer
+    if (strcmp("/deal", cmdtext, true) == 0) {
+          OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); // Deal Drugs
+		  return 1;
+	}
+	// Crack Dieing
+    if (strcmp("/crack", cmdtext, true, 6) == 0) {
+          LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack
+		  return 1;
+	}
+	// Male Smoking
+    if (strcmp("/smokem", cmdtext, true, 4) == 0) {
+          LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Smoke
+		  return 1;
+	}
+	// Female Smoking
+    if (strcmp("/smokef", cmdtext, true) == 0) {
+          LoopingAnim(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Female Smoking
+		  return 1;
+	}
+	// Sit
+    if (strcmp("/groundsit", cmdtext, true, 4) == 0) {
+          LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); // Sit
+		  return 1;
+    }
+    // Idle Chat
+    if(strcmp(cmd, "/chat", true) == 0) {
+		 OnePlayAnim(playerid,"PED","IDLE_CHAT",4.0,0,0,0,0,0);
+         return 1;
+    }
+    // Fucku
+    if(strcmp(cmd, "/fucku", true) == 0) {
+		 OnePlayAnim(playerid,"PED","fucku",4.0,0,0,0,0,0);
+         return 1;
+    }
+    // TaiChi
+    if(strcmp(cmd, "/taichi", true) == 0) {
+		 LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
+         return 1;
+    }
+    
+    // ChairSit
+    if(strcmp(cmd, "/chairsit", true) == 0) {
+		 LoopingAnim(playerid,"BAR","dnk_stndF_loop",4.0,1,0,0,0,0);
+         return 1;
+    }
+    
+    /* Would allow people to troll... but would be cool as a script
+	   controlled function
+    // Bed Sleep R
+    if(strcmp(cmd, "/inbedright", true) == 0) {
+		 LoopingAnim(playerid,"INT_HOUSE","BED_Loop_R",4.0,1,0,0,0,0);
+         return 1;
+    }
+    // Bed Sleep L
+    if(strcmp(cmd, "/inbedleft", true) == 0) {
+		 LoopingAnim(playerid,"INT_HOUSE","BED_Loop_L",4.0,1,0,0,0,0);
+         return 1;
+    }*/
+    
+
+	// START DANCING
+ 	if(strcmp(cmd, "/dance", true) == 0) {
+		    new tmp[256];
+
+			// Get the dance style param
+      		tmp = strtok(cmdtext, idx);
+			if(!strlen(tmp) || strlen(tmp) > 2) {
+				SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
+				return 1;
+			}
+			
+			dancestyle = strval(tmp);
+			if(dancestyle < 1 || dancestyle > 4) {
+			    SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
+			    return 1;
+			}
+			
+			if(dancestyle == 1) {
+			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
+			} else if(dancestyle == 2) {
+			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
+			} else if(dancestyle == 3) {
+			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
+			} else if(dancestyle == 4) {
+			    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
+			}
+ 	  		return 1;
+	}
+
+	return 0;
+}
+//-------------------------------------------------
+// EOF

BIN
samp03/filterscripts/gl_chatbubble.amx


+ 63 - 0
samp03/filterscripts/gl_chatbubble.pwn

@@ -0,0 +1,63 @@
+//
+// Example use of chat above player's head
+//
+
+#include <a_samp>
+#include "../include/gl_common.inc"
+
+#define MESSAGE_COLOR 		  0xEEEEEEFF
+#define ECHO_COLOR 		  	  0xEEEEEEFF
+#define ACTION_COLOR     	  0xEE66EEFF
+
+//------------------------------------------------
+
+public OnFilterScriptInit()
+{
+	print("\n--Speech bubble example loaded.\n");
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerText(playerid, text[])
+{
+	 if(strlen(text) > 128) return 0;
+	 
+	 new to_others[MAX_CHATBUBBLE_LENGTH+1];
+	 new to_me[MAX_CHATBUBBLE_LENGTH+1];
+	 
+	 format(to_others,MAX_CHATBUBBLE_LENGTH,"Says: %s",text);
+	 format(to_me,MAX_CHATBUBBLE_LENGTH,">> %s",text);
+	 
+     SetPlayerChatBubble(playerid,to_others,MESSAGE_COLOR,35.0,10000);
+     SendClientMessage(playerid,ECHO_COLOR,to_me);
+     
+     return 0; // can't do normal chat with this loaded
+}
+
+//------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new Message[256];
+	new	idx;
+	new actiontext[MAX_CHATBUBBLE_LENGTH+1];
+
+	cmd = strtok(cmdtext, idx);
+
+	// Action command
+	if(strcmp("/me", cmd, true) == 0)
+	{
+	    Message = strrest(cmdtext,idx);
+	    format(actiontext,MAX_CHATBUBBLE_LENGTH,"* %s",Message);
+       	SetPlayerChatBubble(playerid,actiontext,ACTION_COLOR,30.0,10000);
+    	SendClientMessage(playerid,ACTION_COLOR,actiontext);
+		return 1;
+	}
+	
+	return 0; // not handled by this script
+}
+
+//------------------------------------------------
+

BIN
samp03/filterscripts/gl_npcs.amx


+ 144 - 0
samp03/filterscripts/gl_npcs.pwn

@@ -0,0 +1,144 @@
+//-------------------------------------------------
+//
+//  NPC initialisation for Grand Larceny
+//
+//-------------------------------------------------
+
+#pragma tabsize 0
+#include <a_samp>
+
+//-------------------------------------------------
+
+public OnFilterScriptInit()
+{
+	ConnectNPC("TrainDriverLV","train_lv");
+	ConnectNPC("TrainDriverLS","train_ls");
+	ConnectNPC("TrainDriverSF","train_sf");
+	
+	ConnectNPC("PilotLV","at400_lv");
+	ConnectNPC("PilotSF","at400_sf");
+	ConnectNPC("PilotLS","at400_ls");
+
+	// Testing
+	//ConnectNPC("TestIdle","onfoot_test");
+	//ConnectNPC("TaxiTest","mat_test");
+	
+	return 1;
+}
+
+//-------------------------------------------------
+// IMPORTANT: This restricts NPCs connecting from
+// an IP address outside this server. If you need
+// to connect NPCs externally you will need to modify
+// the code in this callback.
+
+public OnPlayerConnect(playerid)
+{
+	if(IsPlayerNPC(playerid)) {
+	    new ip_addr_npc[64+1];
+	    new ip_addr_server[64+1];
+	    GetServerVarAsString("bind",ip_addr_server,64);
+	    GetPlayerIp(playerid,ip_addr_npc,64);
+	    
+		if(!strlen(ip_addr_server)) {
+		    ip_addr_server = "127.0.0.1";
+		}
+		
+		if(strcmp(ip_addr_npc,ip_addr_server,true) != 0) {
+		    // this bot is remote connecting
+		    printf("NPC: Got a remote NPC connecting from %s and I'm kicking it.",ip_addr_npc);
+		    Kick(playerid);
+		    return 0;
+		}
+        printf("NPC: Connection from %s is allowed.",ip_addr_npc);
+	}
+	
+	return 1;
+}
+
+//-------------------------------------------------
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	if(!IsPlayerNPC(playerid)) return 0; // We only deal with NPC players in this script
+	
+	new playername[64];
+	GetPlayerName(playerid,playername,64);
+
+ 	if(!strcmp(playername,"TrainDriverLV",true)) {
+        SetSpawnInfo(playerid,69,255,1462.0745,2630.8787,10.8203,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"TrainDriverSF",true)) {
+	    SetSpawnInfo(playerid,69,255,-1942.7950,168.4164,27.0006,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"TrainDriverLS",true)) {
+	    SetSpawnInfo(playerid,69,255,1700.7551,-1953.6531,14.8756,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"PilotLV",true)) {
+	    SetSpawnInfo(playerid,69,61,0.0,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"PilotSF",true)) {
+	    SetSpawnInfo(playerid,69,61,0.0,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"PilotLS",true)) {
+	    SetSpawnInfo(playerid,69,61,0.0,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"TestIdleDriver",true)) {
+	    SetSpawnInfo(playerid,69,61,0.0,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1);
+	}
+	else if(!strcmp(playername,"TaxiTest",true)) {
+	    SetSpawnInfo(playerid,69,61,0.0,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1);
+	}
+
+	return 0;
+}
+
+//-------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	if(!IsPlayerNPC(playerid)) return 1; // We only deal with NPC players in this script
+
+	new playername[64];
+	GetPlayerName(playerid,playername,64);
+
+	if(!strcmp(playername,"TrainDriverLV",true)) {
+        PutPlayerInVehicle(playerid,1,0);
+        SetPlayerColor(playerid,0xFFFFFFFF);
+ 	}
+	else if(!strcmp(playername,"TrainDriverSF",true)) {
+	    PutPlayerInVehicle(playerid,5,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"TrainDriverLS",true)) {
+	    PutPlayerInVehicle(playerid,9,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"PilotLV",true)) {
+	    PutPlayerInVehicle(playerid,13,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"PilotSF",true)) {
+	    PutPlayerInVehicle(playerid,14,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"PilotLS",true)) {
+	    PutPlayerInVehicle(playerid,15,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"TestIdleDriver",true)) {
+	    PutPlayerInVehicle(playerid,43,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+	else if(!strcmp(playername,"TaxiTest",true)) {
+	    PutPlayerInVehicle(playerid,968,0);
+	    SetPlayerColor(playerid,0xFFFFFFFF);
+	}
+
+	return 1;
+}
+
+//-------------------------------------------------
+// EOF
+
+

BIN
samp03/filterscripts/gl_property.amx


+ 835 - 0
samp03/filterscripts/gl_property.pwn

@@ -0,0 +1,835 @@
+//-------------------------------------------------------
+//
+// GRAND LARCENY Property creation and management script
+//
+// by damospiderman 2008
+//
+//-------------------------------------------------------
+
+#include <a_samp>
+#include "../include/gl_common.inc"
+
+#define FILTERSCRIPT
+//#define USE_SQLITE
+
+#define PROP_VW    		(10000)
+#define MAX_INTERIORS	(146)
+#define MAX_PROPERTIES  (1000)
+
+#define PROPERTY_FOLDER	"properties" // Location of properties file
+#define PROPERTY_UNIQID_FILE    "properties/uniqId.txt" // Location of Uniq Interior Info
+#define DB_PROPERTIES   "properties/dbProperties.db" // Location of the properties Database
+
+#define MAX_TYPES       (5)
+#define TYPE_EMPTY      (0)
+#define TYPE_HOUSE 		(1)
+#define TYPE_BUSINESS	(2)
+#define TYPE_BANK   	(3)
+#define TYPE_COP        (4)
+
+enum // Property Type Enum
+	E_P_TYPES {
+		tIcon,
+		tName[32]
+	}
+
+enum // Uniq Interiors Enum
+	E_INTERIORS {
+		inIntID,
+		Float:inExitX,
+		Float:inExitY,
+		Float:inExitZ,
+		Float:inExitA,
+		inName[64]
+	};
+
+enum // Properties Enum
+	E_PROPERTIES {
+		eInterior,
+		eType,
+		Float:eEntX,
+		Float:eEntY,
+		Float:eEntZ,
+		Float:eEntA,
+		eUniqIntId,
+		eOwner,
+		ePrice,
+		ePname[64]
+	};
+
+//  [ uniq property id ]
+new	unid;
+
+//	[ Array of all the property interior info ]
+new interiorInfo[MAX_INTERIORS][E_INTERIORS];
+
+//	[ Pickup array with property id assigned via array slot ( pickupid ) ]
+new propPickups[MAX_PROPERTIES] = {-1};
+
+//	[ Handles for 3D text displayed at property entrances ]
+new Text3D:propTextInfo[MAX_PROPERTIES];
+
+// 	[ Mass array of all the properties and info about them ]
+new properties[MAX_PROPERTIES][E_PROPERTIES];
+
+//	[ The last pickup the player went through so they can do /enter command ]
+new lastPickup[MAX_PLAYERS] = {-1};
+
+//	[ Current property Unique Interior the player is in.. defaults to -1 when not in any property ]
+new currentInt[MAX_PLAYERS] = {-1};
+
+//	[ Player Position array to store the last place the player was before /view command so they can be teleported back ]
+new Float:plPos[MAX_PLAYERS][3];
+
+//	[ Players actual interior id used for /view /return command ]
+new plInt[MAX_PLAYERS];
+
+//  [ Array of property type iconid's and strings for property type ]
+new propIcons[MAX_TYPES][E_P_TYPES] =	{
+											{ 0, "" }, 					// TYPE_EMPTY ( not used )
+											{ 1273, "House" }, 			// TYPE_HOUSE green house icon
+											{ 1272, "Business" }, 		// TYPE_BUSINESS blue house icon
+											{ 1274, "Bank" }, 			// TYPE_BANK dollar sign icon
+											{ 1247, "Police Station" }	// TYPE_COP Bribe Star 1247
+										};
+										
+new	propFile[MAX_TYPES][64] =   {
+									{ "blank" },
+		                            { "properties/houses.txt" },
+		                            { "properties/businesses.txt" },
+		                            { "properties/banks.txt" },
+		                            { "properties/police.txt" }
+							 	};
+							 	
+//  Keep track of what properties we've sent an /enter notification for
+new gLastPropertyEnterNotification[MAX_PLAYERS];
+
+
+/********************************
+*   Interior Info Functions     *
+********************************/
+stock Float:GetInteriorExit( id, &Float:x, &Float:y, &Float:z ){
+	if( id > MAX_INTERIORS ) return 0.0;
+	else {
+	    x = interiorInfo[id][inExitX];
+	    y = interiorInfo[id][inExitY];
+	    z = interiorInfo[id][inExitZ];
+		return interiorInfo[id][inExitA];
+	}
+}
+
+// Gets interior exit info from uniq Interior Id. Returns InteriorId or -1 if interior doesn't exist
+stock GetInteriorExitInfo( uniqIntId, &Float:exitX, &Float:exitY, &Float:exitZ, &Float:exitA ){
+	if( uniqIntId < MAX_INTERIORS ){
+	    exitX = interiorInfo[uniqIntId][inExitX];
+	    exitY = interiorInfo[uniqIntId][inExitY];
+	    exitZ = interiorInfo[uniqIntId][inExitZ];
+	    exitA = interiorInfo[uniqIntId][inExitA];
+		return interiorInfo[uniqIntId][inIntID];
+	}
+	return -1;
+}
+
+
+stock GetInteriorIntID( id ){ // Gets the interior id of a uniq Interior Id :S
+	if( id > MAX_INTERIORS ) return -1;
+	else return interiorInfo[id][inIntID];
+}
+
+stock GetInteriorName( id )
+{
+	new tmp[64];
+	if( id > MAX_PROPERTIES ) return tmp;
+
+	else {
+  		format( tmp, 64, "%s", interiorInfo[id][inName] );
+		return tmp;
+	}
+}
+
+/********************************************************
+********************************************************/
+
+
+/********************************
+*  	 Property Functions  		*
+********************************/
+
+stock Float:GetPropertyEntrance( id, &Float:x, &Float:y, &Float:z ){
+	if( id > MAX_PROPERTIES ) return 0.0;
+	x = properties[id][eEntX];
+	y = properties[id][eEntY];
+	z = properties[id][eEntZ];
+	return properties[id][eEntA];
+}
+
+stock Float:GetPropertyExit( id, &Float:x, &Float:y, &Float:z ){
+	if( id > MAX_PROPERTIES ) return 0.0;
+	return GetInteriorExit( properties[id][eUniqIntId], x, y, z );
+}
+
+stock GetPropertyInteriorFileId( id ){
+	if( id > MAX_PROPERTIES ) return 0;
+	else return properties[id][eUniqIntId];
+}
+
+stock GetPropertyInteriorId( id ){
+	if( id > MAX_PROPERTIES ) return 0;
+	else return GetInteriorIntID( properties[id][eUniqIntId] );
+}
+
+stock GetPropertyType( id ){
+	if( id > MAX_PROPERTIES ) return 0;
+	else return properties[id][eType];
+}
+
+stock GetPropertyOwner( id ){
+	if( id > MAX_PROPERTIES ) return -1;
+	else return properties[id][eOwner];
+}
+
+stock GetPropertyPrice( id ){
+	if( id > MAX_PROPERTIES ) return -1;
+	else return properties[id][ePrice];
+}
+
+stock GetPropertyName( id ){
+	new tmp[64];
+	if( id > MAX_PROPERTIES ) return tmp;
+	else {
+  		format( tmp, 64, "%s", properties[id][ePname] );
+		return tmp;
+	}
+}
+
+/********************************************************
+********************************************************/
+
+/********************************
+*   	Database Functions	    *
+********************************/
+
+stock Float:dbGetPropertyEntrance( database[], uniqId, &Float:x, &Float:y, &Float:z ){
+	new
+	    DB:prop,
+	    DBResult:query_result,
+	    query[128],
+		num;
+
+	prop = db_open( database );
+	format( query, 128,"SELECT entX, entY, enZ, entA FROM properties WHERE id = %d LIMIT 1", uniqId );
+
+	query_result = db_query( prop, query );
+	num = db_num_rows(query_result);
+	if(!num) return -1.0;
+
+	else {
+		db_get_field_assoc( query_result, "entX", query, 128 );
+		x = floatstr( query );
+		db_get_field_assoc( query_result, "entY", query, 128 );
+		y = floatstr( query );
+		db_get_field_assoc( query_result, "entZ", query, 128 );
+		z = floatstr( query );
+		db_get_field_assoc( query_result, "entA", query, 128 );
+		return floatstr( query );
+	}
+}
+
+stock dbSetPropertyOwner( database[], uniqId, ownerId ){
+}
+
+stock dbSetPropertyPrice( database[], uniqId, price ){
+}
+
+stock dbDeleteProperty( database[], uniqId ){
+}
+
+stock dbCreateProperty( database[], uniqId, Float:entX, Float:entY, Float:entZ, Float:entA ){ // remember to add rest of params
+}
+
+stock dbLoadProperties( database[] )
+{
+	new
+		    DB:prop,
+		    DBResult:query_result,
+		    query[128],
+			num,
+			i;
+
+	prop = db_open( database );
+	format( query, 128,"SELECT * FROM properties", uniqId );
+
+	query_result = db_query( prop, query );
+	num = db_num_rows(query_result);
+	if(!num) return 0;
+	else {
+		while( i < num ){
+		    db_get_field_assoc( query_result, "entX", query, 128 );
+			x = floatstr( query );
+			db_get_field_assoc( query_result, "entX", query, 128 );
+			x = floatstr( query );
+			db_get_field_assoc( query_result, "entY", query, 128 );
+			y = floatstr( query );
+			db_get_field_assoc( query_result, "entZ", query, 128 );
+			z = floatstr( query );
+			db_get_field_assoc( query_result, "entA", query, 128 );
+			i++;
+		}
+	}
+
+}
+/********************************************************
+********************************************************/
+
+/*********************************
+*   Property System Functions    *
+*********************************/
+
+ReadInteriorInfo( fileName[] )
+{
+	new
+	    File:file_ptr,
+	    buf[256],
+	    tmp[64],
+	    idx,
+		uniqId;
+
+
+	file_ptr = fopen( fileName, io_read );
+	if( file_ptr ){
+		while( fread( file_ptr, buf, 256 ) > 0){
+		    idx = 0;
+
+     		idx = token_by_delim( buf, tmp, ' ', idx );
+			if(idx == (-1)) continue;
+			uniqId = strval( tmp );
+
+			if( uniqId >= MAX_INTERIORS ) return 0;
+
+			idx = token_by_delim( buf, tmp, ' ', idx+1 );
+		    if(idx == (-1)) continue;
+		 	interiorInfo[uniqId][inIntID] = strval( tmp );
+
+			idx = token_by_delim( buf, tmp, ' ', idx+1 );
+		    if(idx == (-1)) continue;
+			interiorInfo[uniqId][inExitX] = floatstr( tmp );
+
+			idx = token_by_delim( buf, tmp, ' ', idx+1 );
+		    if(idx == (-1)) continue;
+			interiorInfo[uniqId][inExitY] = floatstr( tmp );
+
+			idx = token_by_delim( buf, tmp, ' ', idx+1);
+		    if(idx == (-1)) continue;
+			interiorInfo[uniqId][inExitZ] = floatstr( tmp );
+
+			idx = token_by_delim( buf, tmp, ' ', idx+1 );
+		    if(idx == (-1)) continue;
+			interiorInfo[uniqId][inExitA] = floatstr( tmp );
+
+			idx = token_by_delim( buf, interiorInfo[uniqId][inName], ';', idx+1 );
+		    if(idx == (-1)) continue;
+
+			/*
+			printf( "ReadInteriorInfo(%d, %d, %f, %f, %f, %f ( %s ))",
+					uniqId,
+					interiorInfo[uniqId][inIntID],
+					interiorInfo[uniqId][inExitX],
+					interiorInfo[uniqId][inExitY],
+					interiorInfo[uniqId][inExitZ],
+					interiorInfo[uniqId][inExitA],
+					interiorInfo[uniqId][inName] );*/
+
+		}
+		//printf( "Interiors File read successfully" );
+		fclose( file_ptr );
+		return 1;
+	}
+	printf( "Could Not Read Interiors file ( %s )", fileName );
+	return 0;
+}
+
+ReadPropertyFile( fileName[] )
+{
+	new  File:file_ptr,
+	    tmp[128],
+		buf[256],
+		idx,
+		Float:enX,
+		Float:enY,
+		Float:enZ,
+		Float:enA,
+		uniqIntId,
+		p_type,
+		pIcon;
+
+	printf("Reading File: %s",fileName);
+
+	file_ptr = fopen( fileName, io_read );
+
+	if(!file_ptr )return 0;
+
+ 	while( fread( file_ptr, buf, 256 ) > 0){
+ 	    idx = 0;
+
+ 	    idx = token_by_delim( buf, tmp, ',', idx );
+		if(idx == (-1)) continue;
+		pIcon = strval( tmp );
+
+ 	    idx = token_by_delim( buf, tmp, ',', idx+1 );
+		if(idx == (-1)) continue;
+		enX = floatstr( tmp );
+
+  		idx = token_by_delim( buf, tmp, ',', idx+1 );
+		if(idx == (-1)) continue;
+		enY = floatstr( tmp );
+
+		idx = token_by_delim( buf, tmp, ',', idx+1 );
+		if(idx == (-1)) continue;
+		enZ = floatstr( tmp );
+
+ 		idx = token_by_delim( buf, tmp, ',', idx+1 );
+		if(idx == (-1)) continue;
+		enA = floatstr( tmp );
+
+		idx = token_by_delim( buf, tmp, ',', idx+1 );
+		if(idx == (-1)) continue;
+		uniqIntId = strval( tmp );
+
+		idx = token_by_delim( buf, tmp, ';', idx+1 );
+		if(idx == (-1)) continue;
+		p_type = strval( tmp );
+
+		CreateProperty( uniqIntId, pIcon, enX, enY, enZ, enA, p_type  );
+	}
+	fclose( file_ptr );
+	return 1;
+}
+
+PutPlayerInProperty( playerid, propId, propVW = 0 )
+{
+	new Float:x, Float:y, Float:z, Float:a;
+	new intFileId;
+	
+    a = GetPropertyExit( propId, x, y, z );
+	SetPlayerPos( playerid, x, y, z );
+	SetPlayerFacingAngle( playerid, a );
+	SetPlayerInterior( playerid, GetPropertyInteriorId( propId ));
+	SetPlayerVirtualWorld( playerid, (propVW==0)? propId+PROP_VW:propVW );
+	intFileId = GetPropertyInteriorFileId(propId);
+	currentInt[playerid] = propId;
+	
+	//new dbgstring[128];
+	//format(dbgstring,sizeof(dbgstring),"PutPlayerInProperty(%d): FileInt=%d",propId,intFileId);
+	//SendClientMessage(playerid,0xFFFFFFFF,dbgstring);
+	
+	// the following will make the client shop scripts run if we tell it
+	// the name of the shop.
+	if(intFileId == 22) {
+	    SetPlayerShopName(playerid,"FDPIZA");
+	}
+	else if(intFileId == 47) {
+		SetPlayerShopName(playerid,"FDBURG");
+	}
+	else if(intFileId == 130) {
+	    SetPlayerShopName(playerid,"FDCHICK");
+	}
+	else if(intFileId == 32) {
+	    SetPlayerShopName(playerid,"AMMUN1");
+	}
+	else if(intFileId == 96) {
+	    SetPlayerShopName(playerid,"AMMUN2");
+	}
+	else if(intFileId == 122) {
+	    SetPlayerShopName(playerid,"AMMUN3");
+	}
+	else if(intFileId == 123) {
+	    SetPlayerShopName(playerid,"AMMUN5");
+	}
+	
+}
+
+// Adds new property to property file
+AddProperty( uniqIntId, Float:entX, Float:entY, Float:entZ, Float:entA, p_type, comment[]="" )
+{
+	new
+	    Float:exitX,
+	    Float:exitY,
+	    Float:exitZ,
+	    Float:exitA,
+		interiorId,
+		File:file_ptr,
+		tmp[128];
+
+	interiorId = GetInteriorExitInfo( uniqIntId, exitX, exitY, exitZ, exitA );
+
+	if( interiorId != -1 ){
+	    file_ptr = fopen( propFile[p_type], io_append );
+	    if(file_ptr){
+			format( tmp, 128, "%d, %f, %f, %f, %f, %d, %d ; //%s\r\n", propIcons[p_type][tIcon],entX, entY, entZ, entA, uniqIntId, p_type, comment );
+
+			fwrite( file_ptr, tmp );
+			fclose( file_ptr );
+			printf( "PropDB - %s", tmp );
+			return CreateProperty( uniqIntId, propIcons[p_type][tIcon], entX, entY, entZ, entA,  p_type );
+		}
+	}
+	return -1;
+}
+
+CreateProperty( uniqIntId, iconId,  Float:entX, Float:entY, Float:entZ, Float:entA, p_type, name[64]="", owner=-1, price=0 )
+{
+	if( (unid+1) < MAX_PROPERTIES ){
+		new Id = CreatePickup( iconId ,23, entX, entY, entZ, 0 );
+		//printf( "CreateProperty(%d, %d, %f, %f, %f, %f, %d)", uniqIntId, iconId, entX, entY, entZ, entA, p_type );
+		propPickups[Id] = unid;
+		properties[unid][eEntX] 	= entX;
+		properties[unid][eEntY] 	= entY;
+		properties[unid][eEntZ] 	= entZ;
+		properties[unid][eEntA] 	= entA;
+		properties[unid][eUniqIntId] = uniqIntId;
+		properties[unid][eOwner] 	= owner;
+		properties[unid][ePrice] 	= price;
+		properties[unid][eType] 	= p_type;
+		format( properties[unid][ePname], 64, "%s", name );
+		
+		new text_info[256];
+		
+		propTextInfo[unid] = Text3D:INVALID_3DTEXT_ID;
+		
+		if(p_type == TYPE_HOUSE) {
+		    format(text_info,256,"[House]");
+		    propTextInfo[unid] = Create3DTextLabel(text_info,0x88EE88FF,entX,entY,entZ+0.75,20.0,0,1);
+		}
+		else if(p_type == TYPE_BUSINESS) {
+		    format(text_info,256,"[Business]");
+		    propTextInfo[unid] = Create3DTextLabel(text_info,0xAAAAFFFF,entX,entY,entZ+0.75,20.0,0,1);
+		}
+		else if(p_type == TYPE_BANK) {
+		    format(text_info,256,"[Bank]");
+		    propTextInfo[unid] = Create3DTextLabel(text_info,0xEEEE88FF,entX,entY,entZ+0.75,20.0,0,1);
+		}
+		else if(p_type == TYPE_COP) {
+		    format(text_info,256,"[Police Station]");
+		    propTextInfo[unid] = Create3DTextLabel(text_info,0xEEEE88FF,entX,entY,entZ+0.75,20.0,0,1);
+		}
+
+		return unid++;
+	}
+	else print( "Property Limit Reached" );
+	return -1;
+}
+
+PropertyCommand( playerid, cmd[],cmdtext[],idx, p_type )
+{
+	new
+	        Float:x,
+	        Float:y,
+	        Float:z,
+	        Float:a,
+	        tmp[256],
+	        string[128],
+			uniqId,
+			id;
+
+	if( GetPlayerInterior(playerid) != 0 || GetPlayerVirtualWorld(playerid)!= 0 ){
+	    SendClientMessage(playerid, 0x550000FF, "You can only create properties in Interior 0 and VW 0" );
+	    return 1;
+	}
+
+	GetPlayerPos( playerid, x, y, z );
+	GetPlayerFacingAngle( playerid, a );
+
+	tmp = strtok( cmdtext, idx );
+	if(!strlen(tmp)){
+	    format( string, 128, "Usage: %s [uniqInteriorId] [optional-comment]", cmd );
+	    SendClientMessage( playerid, 0xFF00CC, string );
+	    return 1;
+	}
+	if(!isNumeric(tmp)){
+	    SendClientMessage(playerid, 0x550000, "Uniq Interior Id must be a number" );
+	    return 1;
+	}
+	uniqId = strval( tmp );
+
+	if( uniqId > MAX_INTERIORS || uniqId < 0 ){
+		SendClientMessage( playerid, 0xFFFFCC, "Invalid Uniq Interior Id" );
+		return 1;
+	}
+
+    idx = token_by_delim( cmdtext, tmp, '\0', idx );
+ 	if(idx){
+ 	    id = AddProperty( uniqId, x, y, z, a, p_type, tmp );
+	}
+
+	else {
+		id = AddProperty( uniqId, x, y, z, a, p_type );
+	}
+
+	if( id != -1 ){
+		format( tmp, 256, "Property Type ( %d ) Added Successfully: UniqId: %d Interior: %d IntName: %s",p_type, id, interiorInfo[uniqId][inIntID], interiorInfo[uniqId][inName] );
+	    SendClientMessage( playerid, 0xCC7700, tmp );
+	}else{
+	    SendClientMessage( playerid, 0x00FF55, "Error: Something went wrong/Property Limit Reached" );
+	}
+	return 1;
+}
+
+LoadProperties()
+{
+	if( properties[0][eType] != TYPE_EMPTY ){
+	    UnloadProperties();
+	}
+	unid = 0;
+   	for( new i = 0; i < MAX_PROPERTIES; i++ ){
+   	    properties[i][eType] = TYPE_EMPTY;
+	}
+
+	ReadInteriorInfo( "properties/interiors.txt" );
+
+	for( new i = 0; i < MAX_TYPES; i++ ){
+   		ReadPropertyFile( propFile[i] );
+	}
+	return 1;
+}
+
+UnloadProperties()
+{
+	new
+	    p;
+	for( new i = 0; i < MAX_PROPERTIES; i++ ){
+		if( propPickups[i] != -1 ){
+			DestroyPickup( i );
+			p = propPickups[i];
+			propPickups[i] = -1;
+			properties[p][eInterior] = -1;
+			properties[p][eType] = TYPE_EMPTY;
+			properties[p][eOwner] = -1;
+			properties[p][ePrice] = 0;
+			properties[p][ePname][0] = '\0';
+		}
+	}
+}
+
+/********************************************************
+********************************************************/
+
+
+/************************************
+*   		Callbacks			    *
+************************************/
+
+
+public OnFilterScriptInit()
+{
+	print("\n-----------------------------------");
+	print("Grand Larceny Property Filterscript		");
+	print("-----------------------------------\n");
+	return 1;
+}
+
+public OnFilterScriptExit()
+{
+	UnloadProperties();
+	return 1;
+}
+
+public OnGameModeInit()
+{
+	LoadProperties();
+	return 1;
+}
+
+public OnGameModeExit()
+{
+	UnloadProperties();
+	return 1;
+}
+
+public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
+{
+	if( newinteriorid == 0 ){
+		currentInt[playerid] = -1;
+		SetPlayerVirtualWorld( playerid, 0 );
+	}
+	return 1;
+}
+
+public OnPlayerSpawn( playerid )
+{
+	gLastPropertyEnterNotification[playerid] = -1;
+	return 1;
+}
+
+public OnPlayerPickUpPickup(playerid, pickupid)
+{
+	//printf( "DEBUG: Player %d pickedup Pickup %d Prop Id %d", playerid, pickupid );
+	lastPickup[playerid] = pickupid;
+	new id = propPickups[pickupid];
+	new pmsg[256];
+
+	if( properties[id][eType] > 0 ){
+	
+	    if(gLastPropertyEnterNotification[playerid] != id){
+	        gLastPropertyEnterNotification[playerid] = id;
+          	switch( properties[id][eType] ){
+		    	case TYPE_HOUSE:{
+		        	format(pmsg,256,"* House: type /enter to enter");
+		        	SendClientMessage( playerid, 0xFF55BBFF, pmsg );
+		        	return 1;
+				}
+
+				case TYPE_BUSINESS:{
+			   		format(pmsg,256,"* Business: type /enter to enter");
+		        	SendClientMessage( playerid, 0xFF55BBFF, pmsg );
+		        	return 1;
+				}
+
+				case TYPE_BANK:{
+					format(pmsg,256,"* Bank: type /enter to enter");
+		        	SendClientMessage( playerid, 0xFF55BBFF, pmsg );
+		        	return 1;
+				}
+
+				case TYPE_COP:{
+					format(pmsg,256,"* Police Station: type /enter to enter");
+		        	SendClientMessage( playerid, 0xFF55BBFF, pmsg );
+		        	return 1;
+				}
+		 	}
+		}
+	}
+	else SendClientMessage( playerid, 0xFF9900FF, "This property doesn't exist :S" );
+
+	return 1;
+}
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new idx;
+	new cmd[256];
+
+	cmd = strtok(cmdtext, idx);
+	
+	// Public commands.
+	if(strcmp("/enter", cmd, true) == 0) // enter property
+	{
+		if( lastPickup[playerid] != -1 || properties[lastPickup[playerid]][eType] > 0 ){
+		    new
+		        id = propPickups[lastPickup[playerid]],
+		        Float:x,
+		        Float:y,
+		        Float:z;
+
+			GetPropertyEntrance( id, x, y, z );
+	    	if( IsPlayerInRangeOfPoint( playerid, 3.0, x, y, z )){
+	    	    PutPlayerInProperty( playerid, id );
+	    	    SendClientMessage( playerid, 0x55AADDFF, "* You have entered a property.. type /exit to leave" );
+	    	    return 1;
+			}
+		}
+		return 1;
+	}
+	else if(strcmp("/exit", cmd, true) == 0) // exit property
+	{
+	    if( currentInt[playerid] > -1 && GetPlayerInterior(playerid) == GetPropertyInteriorId( currentInt[playerid] )){
+
+	        new id = currentInt[playerid];
+	        new Float:x;
+			new	Float:y;
+			new	Float:z;
+			new	Float:a;
+
+			// make sure they're near the exit before allowing them to exit.
+			GetPropertyExit( id, x, y, z );
+			if(!IsPlayerInRangeOfPoint(playerid,4.5,x,y,z)) {
+			    SendClientMessage(playerid,0xDDAA55FF,"* You must be near the property exit to /exit");
+			    return 1;
+			}
+
+			a = GetPropertyEntrance( id, x, y, z );
+			SetPlayerPos( playerid, x, y, z );
+			SetPlayerFacingAngle( playerid, a );
+			SetPlayerInterior( playerid, 0 );
+			SetPlayerVirtualWorld( playerid, 0 );
+		}
+		currentInt[playerid] = -1;
+		return 1;
+	}
+	
+	// The rest of the commands here are for
+	// property creation which is admin only.
+	
+	if(!IsPlayerAdmin(playerid)) return 0;
+
+	if(strcmp("/chouse", cmd, true) == 0) // creates a house type property
+	{
+		PropertyCommand( playerid, cmd, cmdtext,idx, TYPE_HOUSE );
+		return 1;
+	}
+	else if(strcmp("/cbus", cmd, true) == 0) // creates a business type property
+	{
+ 	    PropertyCommand( playerid, cmd, cmdtext,idx, TYPE_BUSINESS );
+ 	    return 1;
+	}
+	else if(strcmp("/ccop", cmd, true) == 0) // creates a police station property
+	{
+		PropertyCommand( playerid, cmd, cmdtext,idx, TYPE_COP );
+		return 1;
+	}
+	else if(strcmp("/cbank", cmd, true) == 0) // creates a bank type property
+	{
+		PropertyCommand( playerid, cmd, cmdtext,idx, TYPE_BANK );
+		return 1;
+	}
+	else if(strcmp("/view", cmd, true) == 0) //Basically lets you view an interior from the interiors.txt file by id
+	{
+
+	    new
+			tmp[256],
+			string[128],
+			uniqId,
+			Float:x,
+			Float:y,
+			Float:z,
+			Float:a;
+		tmp = strtok( cmdtext, idx );
+		if(!strlen(tmp)){
+		    format( string, 128, "Usage: %s [uniqInteriorId]", cmd );
+		    SendClientMessage( playerid, 0xFF00CC, string );
+
+		    return 1;
+		}
+		if(!isNumeric(tmp)){
+		    SendClientMessage(playerid, 0x550000, "Uniq Interior Id must be a number" );
+		    return 1;
+		}
+		uniqId = strval( tmp );
+
+		if( uniqId > MAX_INTERIORS || uniqId < 0 ){
+			SendClientMessage( playerid, 0xFFFFCC, "Invalid Uniq Interior Id" );
+			return 1;
+		}
+		if( GetPlayerInterior( playerid ) == 0 ){
+			GetPlayerPos( playerid, plPos[playerid][0], plPos[playerid][1], plPos[playerid][2] );
+			plInt[playerid] = GetPlayerInterior( playerid );
+		}
+		a = GetInteriorExit( uniqId, x, y, z );
+		SetPlayerInterior( playerid, GetInteriorIntID( uniqId ) );
+		SetPlayerPos( playerid, x, y, z );
+		SetPlayerFacingAngle( playerid, a );
+		format( string, 128, "UniqId: %d InteriorId: %d Name: %s | Use /return to go to last position", uniqId,GetInteriorIntID( uniqId ), GetInteriorName( uniqId ));
+		SendClientMessage( playerid, 0x556600FF, string );
+		return 1;
+	}
+	else if( strcmp( "/return", cmd, true ) == 0 ) // return from /view command to last position
+	{
+	    SetPlayerPos( playerid, plPos[playerid][0], plPos[playerid][1], plPos[playerid][2] );
+	    SetPlayerInterior( playerid, plInt[playerid] );
+		return 1;
+	}
+
+	return 0;
+}
+
+/***********************************************************************
+***********************************************************************/

BIN
samp03/filterscripts/gl_realtime.amx


+ 89 - 0
samp03/filterscripts/gl_realtime.pwn

@@ -0,0 +1,89 @@
+//
+// Keeps the in game time synced to the server's time and
+// draws the current time on the player's hud using a textdraw/
+// (1 minute = 1 minute real world time)
+//
+//  Kye 2009
+
+#include <a_samp>
+#pragma tabsize 0
+
+//--------------------------------------------------
+
+new Text:txtTimeDisp;
+new hour, minute;
+new timestr[32];
+
+forward UpdateTime();
+
+//--------------------------------------------------
+
+
+public UpdateTime()
+{
+    gettime(hour, minute);
+   	format(timestr,32,"%02d:%02d",hour,minute);
+   	TextDrawSetString(txtTimeDisp,timestr);
+   	
+   	SetWorldTime(hour);
+   	
+	new x=0;
+	while(x!=MAX_PLAYERS) {
+	    if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
+	        SetPlayerTime(x,hour,minute);
+		 }
+		 x++;
+	}
+}
+
+//--------------------------------------------------
+
+public OnGameModeInit()
+{
+	// Init our text display
+	txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
+	TextDrawUseBox(txtTimeDisp, 0);
+	TextDrawFont(txtTimeDisp, 3);
+	TextDrawSetShadow(txtTimeDisp,0); // no shadow
+    TextDrawSetOutline(txtTimeDisp,2); // thickness 1
+    TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
+    TextDrawColor(txtTimeDisp,0xFFFFFFFF);
+    TextDrawAlignment(txtTimeDisp,3);
+	TextDrawLetterSize(txtTimeDisp,0.5,1.5);
+	
+	UpdateTime();
+	SetTimer("UpdateTime",1000 * 60,1);
+
+	return 1;
+}
+
+//--------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	TextDrawShowForPlayer(playerid,txtTimeDisp);
+	
+	gettime(hour, minute);
+	SetPlayerTime(playerid,hour,minute);
+	
+	return 1;
+}
+
+//--------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+    TextDrawHideForPlayer(playerid,txtTimeDisp);
+ 	return 1;
+}
+
+//--------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+    gettime(hour, minute);
+    SetPlayerTime(playerid,hour,minute);
+    return 1;
+}
+
+//--------------------------------------------------

BIN
samp03/filterscripts/menutest.amx


+ 53 - 0
samp03/filterscripts/menutest.pwn

@@ -0,0 +1,53 @@
+// Test menu functionality filterscipt
+
+#include <a_samp>
+
+#define TEST_MENU_ITEMS 6
+
+new Menu:TestMenu;
+new TestMenuStrings[6][16] = {"Test1", "Test2", "Test3", "Test4", "Test5", "Test6"};
+
+HandleTestMenuSelection(playerid, row)
+{
+	new s[256];
+	
+	if(row < TEST_MENU_ITEMS) {
+		format(s,256,"You selected item %s",TestMenuStrings[row]);
+		SendClientMessage(playerid,0xFFFFFFFF,s);
+	}
+}
+
+InitTestMenu()
+{
+	TestMenu = CreateMenu("Test Menu", 1, 200.0, 150.0, 200.0, 200.0);
+
+	for(new x=0; x < TEST_MENU_ITEMS; x++) {
+    	AddMenuItem(TestMenu, 0, TestMenuStrings[x]);
+	}
+}
+
+public OnFilterScriptInit()
+{
+   	InitTestMenu();
+}
+
+public OnPlayerSelectedMenuRow(playerid, row)
+{
+    new Menu:PlayerMenu = GetPlayerMenu(playerid);
+    
+	if(PlayerMenu == TestMenu) {
+	    HandleTestMenuSelection(playerid, row);
+	}
+}
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	if(!strcmp(cmdtext, "/menutest", true))	{
+    	ShowMenuForPlayer(TestMenu, playerid);
+    	return 1;
+	}
+	return 0;
+}
+
+
+

BIN
samp03/filterscripts/npc_record.amx


+ 75 - 0
samp03/filterscripts/npc_record.pwn

@@ -0,0 +1,75 @@
+//-------------------------------------------------
+//
+//  Recording player data for NPC playback
+//  Kye 2009
+//
+//-------------------------------------------------
+
+#pragma tabsize 0
+
+#include <a_samp>
+#include <core>
+#include <float>
+
+#include "../include/gl_common.inc"
+
+//-------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new idx;
+	cmd = strtok(cmdtext, idx);
+	
+	if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
+	
+	// Start recording vehicle data (/vrecord recording_name[])
+	// Find the recording_name[] file in /scriptfiles/
+ 	if(strcmp(cmd, "/vrecord", true) == 0) {
+	    new tmp[512];
+      	tmp = strtok(cmdtext, idx);
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid,0xFF0000FF,"Usage: /vrecord {name}");
+			return 1;
+		}
+		if(!IsPlayerInAnyVehicle(playerid)) {
+            SendClientMessage(playerid,0xFF0000FF,"Recording: Get in a vehicle.");
+			return 1;
+		}
+		StartRecordingPlayerData(playerid,PLAYER_RECORDING_TYPE_DRIVER,tmp);
+		SendClientMessage(playerid,0xFF0000FF,"Recording: started.");
+		return 1;
+	}
+
+	// Start recording onfoot data (/ofrecord recording_name[])
+	// Find the recording_name[] file in /scriptfiles/
+ 	if(strcmp(cmd, "/ofrecord", true) == 0) {
+	    new tmp[512];
+      	tmp = strtok(cmdtext, idx);
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid,0xFF0000FF,"Usage: /ofrecord {name}");
+			return 1;
+		}
+ 		if(IsPlayerInAnyVehicle(playerid)) {
+            SendClientMessage(playerid,0xFF0000FF,"Recording: Leave the vehicle and reuse the command.");
+			return 1;
+		}
+		StartRecordingPlayerData(playerid,PLAYER_RECORDING_TYPE_ONFOOT,tmp);
+		SendClientMessage(playerid,0xFF0000FF,"Recording: started.");
+		return 1;
+	}
+	
+	// Stop recording any data
+	if(strcmp(cmd, "/stoprecord", true) == 0) {
+		StopRecordingPlayerData(playerid);
+		SendClientMessage(playerid,0xFF0000FF,"Recording: stopped.");
+		return 1;
+	}
+
+	return 0;
+}
+
+//-------------------------------------------------
+// EOF
+
+

BIN
samp03/filterscripts/test_cmds.amx


+ 495 - 0
samp03/filterscripts/test_cmds.pwn

@@ -0,0 +1,495 @@
+//-------------------------------------------------
+//
+//  SA-MP 0.3 commands for testing
+//  Don't load this script on a public server
+//  it could break your existing scripts.
+//  Kye 2009
+//
+//-------------------------------------------------
+
+#pragma tabsize 0
+
+#include <a_samp>
+#include <core>
+#include <float>
+
+#include "../include/gl_common.inc"
+
+new Text3D:textid;
+new PlayerText3D:playertextid;
+
+new savanna=0;
+new blade=0;
+
+//-------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new cmd[256];
+	new idx;
+	cmd = strtok(cmdtext, idx);
+	
+	if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
+
+	if(strcmp(cmd, "/player2v", true) == 0)
+	{
+  		new tmp[256];
+	  	new tmp2[256];
+		tmp = strtok(cmdtext,idx);
+		tmp2 = strtok(cmdtext,idx);
+		PutPlayerInVehicle(strval(tmp),strval(tmp2),0);
+	    return 1;
+	}
+
+	if(strcmp( cmd, "/vehicle", true ) == 0 )
+	{
+		new Float:X, Float:Y, Float:Z;
+		new tmp[256];
+		new created_vehicle_id;
+		tmp = strtok( cmdtext, idx );
+
+		GetPlayerPos( playerid, X, Y, Z );
+
+		created_vehicle_id = CreateVehicle( strval(tmp), X+2, Y+2, Z, 0, 0, 0, -1 );
+
+		new msg[256];
+		format(msg,256,"Created vehicle: %d",created_vehicle_id);
+		SendClientMessage(playerid,0xAAAAAAAA,msg);
+
+		return 1;
+	}
+
+	if(strcmp( cmd, "/dvehicle", true ) == 0 )
+	{
+		new tmp[256];
+		tmp = strtok( cmdtext, idx );
+
+		DestroyVehicle( strval(tmp) );
+
+		new msg[256];
+		format(msg,256,"Destroyed vehicle: %d",strval(tmp));
+		SendClientMessage(playerid,0xAAAAAAAA,msg);
+
+		return 1;
+	}
+
+	if ( strcmp( cmd, "/goto", true ) == 0 )
+	{
+	    new tmp[256];
+
+	    tmp = strtok( cmdtext, idx );
+
+	    if ( !strlen( tmp ) ) { return 1; }
+
+	    new Float:X, Float:Y, Float:Z;
+
+	    if ( GetPlayerVehicleID( playerid ) )
+	    {
+		    GetPlayerPos( strval(tmp), X, Y, Z );
+		    SetVehiclePos( GetPlayerVehicleID(playerid), X+2, Y+2, Z );
+	    } else {
+		    GetPlayerPos( strval(tmp), X, Y, Z );
+		    SetPlayerPos( playerid, X+2, Y+2, Z );
+	    }
+
+	    return 1;
+	}
+
+	if ( strcmp( cmd, "/bring", true ) == 0 )
+	{
+	    new tmp[256];
+
+	    tmp = strtok( cmdtext, idx );
+
+	    if ( !strlen( tmp ) ) { return 1; }
+
+	    new Float:X, Float:Y, Float:Z;
+
+	    if ( GetPlayerVehicleID( strval(tmp) ) )
+	    {
+		    GetPlayerPos( playerid, X, Y, Z );
+		    SetVehiclePos( GetPlayerVehicleID(strval(tmp)), X+2, Y+2, Z );
+	    } else {
+		    GetPlayerPos( playerid, X, Y, Z );
+		    SetPlayerPos( strval(tmp), X+2, Y+2, Z );
+	    }
+
+	    return 1;
+	}
+
+	if (strcmp(cmd, "/me2v", true) == 0)
+	{
+	  	new tmp[256];
+		tmp = strtok(cmdtext,idx);
+		PutPlayerInVehicle(playerid,strval(tmp),0);
+	    return 1;
+	}
+
+	if (strcmp(cmd, "/tpzero", true) == 0)
+	{
+	  	new vid = GetPlayerVehicleID(playerid);
+	  	if(vid != INVALID_VEHICLE_ID) {
+			SetVehiclePos(vid,0.0,0.0,10.0);
+		}
+	    return 1;
+	}
+
+	if(strcmp(cmd, "/myvw", true) == 0)
+	{
+        new tmp[256];
+		tmp = strtok(cmdtext,idx);
+		SetPlayerVirtualWorld(playerid,strval(tmp));
+	    return 1;
+	}
+
+	if(strcmp( cmd, "/fight", true ) == 0)
+	{
+		new tmp[256];
+		new name[128];
+
+		tmp = strtok(cmdtext, idx);
+		new style = strval(tmp);
+		SetPlayerFightingStyle(playerid, style);
+		GetPlayerName(playerid,name,128);
+		format(tmp, 256, "(%s) fighting style changed to %d", name, style);
+		SendClientMessageToAll(0x4499CCFF,tmp);
+		return 1;
+	}
+
+	if(strcmp( cmd, "/myfacingangle", true ) == 0)
+	{
+	    new Float:angle;
+	    new tmp[256];
+	    GetPlayerFacingAngle(playerid,angle);
+		format(tmp, 256, "Facing: %f",angle);
+		SendClientMessage(playerid,0x4499CCFF,tmp);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/crime", true) == 0) {
+	    new tmp[256];
+	  	new tmp2[256];
+		tmp = strtok(cmdtext,idx);
+		tmp2 = strtok(cmdtext,idx);
+		PlayCrimeReportForPlayer(playerid, strval(tmp), strval(tmp2));
+		return 1;
+	}
+
+	if(strcmp(cmd, "/repairmycar", true) == 0) {
+	    new vid = GetPlayerVehicleID(playerid);
+	    if (vid) RepairVehicle(vid);
+		return 1;
+	}
+
+    if(strcmp(cmd, "/bv", true) == 0)
+	{
+		new tmp[128], iCar, string[128];
+
+		tmp = strtok(cmdtext, idx);
+
+		if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "DO: /bv [vehicleid]");
+
+		iCar = strval(tmp);
+
+		new File:file = fopen("badvehicles.txt",io_append);
+		format(string,sizeof(string),"%d\r\n", iCar);
+		fwrite(file,string);
+		fclose(file);
+
+		GetPlayerName(playerid,tmp,128);
+		format(string, sizeof(string), "Veh ID %i marked as bad vehicle by %s", iCar, tmp);
+		SendClientMessageToAll(0xFFFFFFFF, string);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/weapskill", true) == 0) {
+	    new tmp[256];
+	  	new tmp2[256];
+		tmp = strtok(cmdtext,idx);
+		tmp2 = strtok(cmdtext,idx);
+		SetPlayerSkillLevel(playerid, strval(tmp), strval(tmp2));
+		return 1;
+	}
+
+	if(strcmp(cmd, "/labelonvehicle", true) == 0) {
+	    new vid = GetPlayerVehicleID(playerid);
+	    textid = Create3DTextLabel("My Vehicle\nOwned by me\nNo Fuel\nRunning on vapour",0xEEEEEE50,0.0,0.0,0.0,15.0,0);
+	    Attach3DTextLabelToVehicle(textid, vid, 0.0, -1.6, -0.35); // tail of the vehicle toward the ground
+		return 1;
+	}
+
+	if(strcmp(cmd, "/labelonplayer", true) == 0) {
+		new tmp[256];
+		tmp = strtok(cmdtext,idx);
+ 		textid = Create3DTextLabel("Player Label",0xFFFFFFFF,0.0,0.0,0.0,40.0,0);
+	    Attach3DTextLabelToPlayer(textid, strval(tmp), 0.0, 0.0, -0.4);
+		return 1;
+	}
+
+    if(strcmp(cmd, "/dellabel", true) == 0) {
+	    Delete3DTextLabel(textid);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/playerlabel", true) == 0) {
+	    new Float:X, Float:Y, Float:Z;
+	    GetPlayerPos( playerid, X, Y, Z );
+	    playertextid = CreatePlayer3DTextLabel(playerid,"Hello\nI'm at your position",0x008080FF,X,Y,Z,40.0);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/playerlabelveh", true) == 0) {
+	    new vid = GetPlayerVehicleID(playerid);
+	    playertextid = CreatePlayer3DTextLabel(playerid,"im in your vehicles\nand hiding behind the walls",0x008080FF,0.0,-1.6,-0.35,20.0,INVALID_PLAYER_ID,vid,1);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/playerlabelpl", true) == 0) {
+	    new tmp[256];
+		tmp = strtok(cmdtext,idx);
+	    playertextid = CreatePlayer3DTextLabel(playerid,"Hello Testing",0x008080FF,0.0,0.0,0.0,30.0,strval(tmp));
+		return 1;
+	}
+
+    if(strcmp(cmd, "/delplayerlabel", true) == 0) {
+	    DeletePlayer3DTextLabel(playerid, playertextid);
+		return 1;
+	}
+
+	if(strcmp(cmd, "/updateplayerlabel", true) == 0) {
+	    UpdatePlayer3DTextLabelText(playerid, playertextid, 0xFFFFFFFF, "");
+		return 1;
+	}
+
+	if(strcmp(cmd, "/carmodtest", true) == 0) {
+	    // spawns a couple of cars in Grove with mods applied
+	   	savanna = CreateVehicle(567,2509.1343,-1686.2330,13.2296,47.3679,16,16,10000);
+		AddVehicleComponent(savanna,1189); //Front Bumper
+		AddVehicleComponent(savanna,1187); //Rear Bumper
+		AddVehicleComponent(savanna,1129); //Exhaust
+		AddVehicleComponent(savanna,1102); //Left Side Skirt
+		AddVehicleComponent(savanna,1133); //Right Side Skirt
+		AddVehicleComponent(savanna,1078); //Wheels
+		AddVehicleComponent(savanna,1010); //Nitro 10x
+		AddVehicleComponent(savanna,1087); //Hydrolics
+
+		blade = CreateVehicle(536,2509.8462,-1671.8666,13.1510,348.3512,16,16,10000);
+		AddVehicleComponent(blade,1182); //Front Bumper
+		AddVehicleComponent(blade,1184); //Rear Bumper
+		AddVehicleComponent(blade,1104); //Exhaust
+		AddVehicleComponent(blade,1108); //Left Side Skirt
+		AddVehicleComponent(blade,1107); //Right Side Skirt
+		AddVehicleComponent(blade,1078); //Wheels
+		AddVehicleComponent(blade,1010); //Nitro 10x
+		AddVehicleComponent(blade,1087); //Hydrolics
+  		return 1;
+	}
+
+	if(strcmp(cmd, "/addnitro", true) == 0) {
+	    new vid = GetPlayerVehicleID(playerid);
+	    AddVehicleComponent(vid, 1010);
+	    return 1;
+	}
+
+
+	if(strcmp(cmd, "/remnitro", true) == 0) {
+        new vid = GetPlayerVehicleID(playerid);
+	    RemoveVehicleComponent(vid, 1010);
+	    return 1;
+	}
+
+	if(strcmp(cmd, "/paintjob", true) == 0) {
+	    new tmp[256];
+		tmp = strtok(cmdtext,idx);
+	    new vid = GetPlayerVehicleID(playerid);
+		ChangeVehiclePaintjob(vid,strval(tmp));
+		return 1;
+	}
+
+	if(strcmp(cmd, "/longtd", true) == 0) {
+  		new st4[256];
+  		new st5[256];
+		new st6[256];
+		new st7[1024];
+
+		format(st4,sizeof(st4),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
+		format(st5,sizeof(st5),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
+		format(st6,sizeof(st6),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789");
+		format(st7,sizeof(st7),"%s %s %s~n~LEN(%d)",st4,st5,st6,strlen(st4)+strlen(st5)+strlen(st6));
+
+        new Text:Stats = TextDrawCreate(10.0, 10.0, st7);
+		TextDrawTextSize(Stats, 400.0, 400.0);
+		TextDrawUseBox(Stats,0);
+		TextDrawBoxColor(Stats,0xFFFFFFFF);
+		TextDrawFont(Stats,1);
+		TextDrawLetterSize(Stats,0.5,0.5);
+		TextDrawShowForPlayer(playerid,Stats);
+		return 1;
+	}
+	
+	if(strcmp(cmd, "/testmsgbox", true) == 0) {
+		ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","Welcome to the SA-MP 0.3 server. This is test_cmds.pwn /testmsgbox\nHope it's useful to you.","OK","Cancel");
+        return 1;
+	}
+	
+	if(strcmp(cmd, "/testmsgbox2", true) == 0) {
+		ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","Welcome:\tInfo\nTest:\t\tTabulated\nLine:\t\tHello","OK","Cancel");
+        return 1;
+	}
+
+	if(strcmp(cmd, "/testinputbox", true) == 0) {
+	    new loginmsg[256+1];
+	    new loginname[MAX_PLAYER_NAME+1];
+	    GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
+	    format(loginmsg,256,"Welcome to the SA-MP 0.3 server.\n\nAccount:\t%s\n\nPlease enter your password below:",loginname);
+		ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login to SA-MP",loginmsg,"Login","Cancel");
+        return 1;
+	}
+	
+	if(strcmp(cmd, "/testlistbox", true) == 0) {
+	    new listitems[] = "1\tDeagle\n2\tSawnoff\n3\tPistol\n4\tGrenade\n5\tParachute\n6\tLorikeet";
+	    ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"List of weapons:",listitems,"Select","Cancel");
+        return 1;
+	}
+	
+    if(strcmp(cmd, "/testclosebox", true) == 0) {
+	    ShowPlayerDialog(playerid,-1,0,"","","","");
+        return 1;
+	}
+
+    if(strcmp(cmd, "/setfacingzero", true) == 0) {
+	    SetPlayerFacingAngle(playerid, 0.0);
+        return 1;
+	}
+
+    if(strcmp(cmd, "/detachtrailer", true) == 0) {
+        new vid = GetPlayerVehicleID(playerid);
+	    DetachTrailerFromVehicle(vid);
+        return 1;
+	}
+	
+	if(strcmp(cmd, "/testformat", true) == 0) {
+	    new strtest[256];
+	    new File:f = fopen("test.txt",io_write);
+	    format(strtest,256,"[chat] %d %s\r\n",24,"þÿÿþ");
+	    SendClientMessage(playerid,0xFFFFFFFF,strtest);
+	    fwrite(f,strtest);
+	    format(strtest,256,"[chat] %d %s\r\n",34," þÿÿþ");
+	    SendClientMessage(playerid,0xFFFFFFFF,strtest);
+	    fwrite(f,strtest);
+	    fclose(f);
+	    return 1;
+	}
+
+	if(strcmp(cmd, "/setskin", true) == 0) {
+        new tmp[256];
+		tmp = strtok(cmdtext,idx);
+		SetPlayerSkin(playerid,strval(tmp));
+	    return 1;
+	}
+
+	return 0;
+}
+
+//-------------------------------------------
+// Test reapplying vehicle mods on respawn
+
+public OnVehicleSpawn(vehicleid)
+{
+	if(vehicleid == savanna) {
+	    AddVehicleComponent(savanna,1189); //Front Bumper
+		AddVehicleComponent(savanna,1187); //Rear Bumper
+		AddVehicleComponent(savanna,1129); //Exhaust
+		AddVehicleComponent(savanna,1102); //Left Side Skirt
+		AddVehicleComponent(savanna,1133); //Right Side Skirt
+		AddVehicleComponent(savanna,1078); //Wheels
+		AddVehicleComponent(savanna,1010); //Nitro 10x
+		AddVehicleComponent(savanna,1087); //Hydrolics
+	}
+	else if(vehicleid == blade) {
+	    AddVehicleComponent(blade,1182); //Front Bumper
+		AddVehicleComponent(blade,1184); //Rear Bumper
+		AddVehicleComponent(blade,1104); //Exhaust
+		AddVehicleComponent(blade,1108); //Left Side Skirt
+		AddVehicleComponent(blade,1107); //Right Side Skirt
+		AddVehicleComponent(blade,1078); //Wheels
+		AddVehicleComponent(blade,1010); //Nitro 10x
+		AddVehicleComponent(blade,1087); //Hydrolics
+	}
+}
+
+//-------------------------------------------
+// Example of handling dialog responses.
+
+public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
+{
+    if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
+    
+	if(dialogid == 0) { // Our example msgbox
+		if(response) {
+		    SendClientMessage(playerid,0xFFFFFFFF,"You selected OK");
+		} else {
+		    SendClientMessage(playerid,0xFFFFFFFF,"You selected Cancel");
+		}
+		return 1; // we processed this. no need for other filterscripts to process it.
+	}
+	
+	if(dialogid == 1) { // Our example inputbox
+		if(response) {
+			new message[256+1];
+			format(message, 256, "You replied: %s", inputtext);
+		    SendClientMessage(playerid, 0xFFFFFFFF, message);
+		} else {
+		    SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
+		}
+		return 1; // we processed it.
+	}
+	
+	if(dialogid == 2) { // Our example listbox
+		if(response) {
+			new message[256+1];
+			if(listitem != 5) {
+				format(message, 256, "You selected item %d:", listitem);
+		    	SendClientMessage(playerid, 0xFFFFFFFF, message);
+		    	SendClientMessage(playerid, 0xFFFFFFFF, inputtext);
+			} else {
+			    SendClientMessage(playerid, 0x5555FFFF, "A Lorikeet is NOT a weapon!");
+			}
+		} else {
+		    SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
+		}
+		return 1; // we processed it.
+	}
+	
+	return 0; // we didn't handle anything.
+}
+
+//-------------------------------------------
+// Example of handling scoreboard click.
+
+public OnPlayerClickPlayer(playerid, clickedplayerid, source)
+{
+	if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
+	
+    new message[256+1];
+	format(message, 256, "You clicked on player %d", clickedplayerid);
+	SendClientMessage(playerid, 0xFFFFFFFF, message);
+	return 1;
+}
+
+//-------------------------------------------
+/*
+public OnEnterExitModShop(playerid, enterexit, interiorid)
+{
+    new message[256+1];
+    if(enterexit) {
+		format(message, 256, "You entered modshop at interior %d", interiorid);
+		SendClientMessage(playerid, 0xFFFFFFFF, message);
+	} else {
+	   	format(message, 256, "You exited the modshop");
+		SendClientMessage(playerid, 0xFFFFFFFF, message);
+	}
+	return 1;
+}
+*/
+//-------------------------------------------

BIN
samp03/gamemodes/bare.amx


+ 90 - 0
samp03/gamemodes/bare.pwn

@@ -0,0 +1,90 @@
+#include <a_samp>
+#include <core>
+#include <float>
+
+#pragma tabsize 0
+
+main()
+{
+	print("\n----------------------------------");
+	print("  Bare Script\n");
+	print("----------------------------------\n");
+}
+
+public OnPlayerConnect(playerid)
+{
+	GameTextForPlayer(playerid,"~w~SA-MP: ~r~Bare Script",5000,5);
+	return 1;
+}
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new idx;
+	new cmd[256];
+	
+	cmd = strtok(cmdtext, idx);
+
+	if(strcmp(cmd, "/yadayada", true) == 0) {
+    	return 1;
+	}
+
+	return 0;
+}
+
+public OnPlayerSpawn(playerid)
+{
+	SetPlayerInterior(playerid,0);
+	TogglePlayerClock(playerid,0);
+	return 1;
+}
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+   	return 1;
+}
+
+SetupPlayerForClassSelection(playerid)
+{
+ 	SetPlayerInterior(playerid,14);
+	SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
+	SetPlayerFacingAngle(playerid, 270.0);
+	SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
+	SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
+}
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	SetupPlayerForClassSelection(playerid);
+	return 1;
+}
+
+public OnGameModeInit()
+{
+	SetGameModeText("Bare Script");
+	ShowPlayerMarkers(1);
+	ShowNameTags(1);
+	AllowAdminTeleport(1);
+
+	AddPlayerClass(265,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1);
+
+	return 1;
+}
+
+strtok(const string[], &index)
+{
+	new length = strlen(string);
+	while ((index < length) && (string[index] <= ' '))
+	{
+		index++;
+	}
+
+	new offset = index;
+	new result[20];
+	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
+	{
+		result[index - offset] = string[index];
+		index++;
+	}
+	result[index - offset] = EOS;
+	return result;
+}

BIN
samp03/gamemodes/barron.amx


+ 264 - 0
samp03/gamemodes/barron.pwn

@@ -0,0 +1,264 @@
+//
+//  RC BARNSTORM - A demonstration vehicle vs vehicle script for SA-MP 0.2
+//  -- by kyeman (SA-MP team) 2007
+//
+//  This script demonstrates the following :-
+//  - An automatic vehicle observer mode switchable via a key press.
+//  - Text drawing and the use of GTA ~k~ key constants.
+//  - Use of RC vehicles
+//  - Dynamic creation and destruction of vehicles
+//  - The OnPlayerKeyStateChange event/callback and determining
+//    if a key has just been pressed.
+//  - Bypassing SA-MP's class selection with SetSpawnInfo
+
+#include <a_samp>
+#include <core>
+#include <float>
+
+new gPlayerVehicles[MAX_PLAYERS]; // the vehicleid for the active playerid
+new gPlayerObserving[MAX_PLAYERS]; // player observing which active player
+new Text:txtObsHelper;
+
+new Float:gSpawnPositions[26][4] = { // positions where players in vehicles spawn
+{-205.7703,-119.6655,2.4094,342.0546},
+{-202.1386,-54.1213,2.4111,95.6799},
+{-197.2334,7.5293,2.4034,16.0852},
+{-135.7348,61.7265,2.4112,354.3534},
+{-73.7883,73.4238,2.4082,260.5399},
+{-6.9850,27.9988,2.4112,201.7691},
+{0.6782,-16.0898,2.4076,161.7720},
+{-46.3365,-88.3937,2.4092,180.7382},
+{-72.4389,-127.2939,2.4107,113.5616},
+{-128.1940,-144.1725,2.4094,78.9676},
+{-266.0189,-50.6718,2.4125,223.8079},
+{-244.2617,-1.0468,2.1038,257.3333},
+{-93.3146,-32.4889,2.4085,186.0631},
+{-130.7054,-93.4983,2.4124,73.8375},
+{-117.4049,4.2989,2.4112,337.1284},
+{-26.1622,135.8739,2.4094,248.1580},
+{45.5705,86.7586,2.0753,147.3342},
+{54.9881,2.2997,1.1132,95.7173},
+{-248.9905,-119.3982,2.4083,303.7859},
+{-60.1321,55.5239,2.4038,325.2209},
+{-60.9184,47.9302,5.7706,342.8299},
+{-70.0303,-22.0071,2.4113,165.2789},
+{-138.3093,-83.2640,2.4152,4.0455},
+{-25.5989,94.6100,2.4041,150.8322},
+{-161.0327,-70.5945,2.4042,142.9221},
+{-54.8308,-139.6148,2.4119,258.7639}
+};
+
+//------------------------------------------------------------------------------------------------------
+
+main()
+{
+	print("Running: RC BARNSTORM by kyeman 2007");
+}
+
+//------------------------------------------------
+// ObserverSwitchToNextVehicle
+// Will increment the current observed player
+// until it finds a new player with an active vehicle.
+
+ObserverSwitchToNextVehicle(playerid)
+{
+	new x=0;
+	while(x!=MAX_PLAYERS) { // MAX_PLAYERS iterations
+	    gPlayerObserving[playerid]++;
+	    if(gPlayerObserving[playerid] == MAX_PLAYERS) {
+			// we need to cycle back to the start
+			gPlayerObserving[playerid] = 0;
+		}
+		// see if the target player has a vehicle,
+		// if so assign this player to observe it
+		if(gPlayerVehicles[gPlayerObserving[playerid]] != 0) {
+			PlayerSpectateVehicle(playerid,gPlayerVehicles[gPlayerObserving[playerid]]);
+			return;
+		}
+		x++;
+	}
+	// didn't find any vehicles to observe. we'll have to default to last
+	PlayerSpectateVehicle(playerid,gPlayerVehicles[gPlayerObserving[playerid]]);
+}
+
+//------------------------------------------------
+// IsKeyJustDown. Returns 1 if the key
+// has just been pressed, 0 otherwise.
+
+IsKeyJustDown(key, newkeys, oldkeys)
+{
+	if((newkeys & key) && !(oldkeys & key)) return 1;
+	return 0;
+}
+
+//------------------------------------------------
+
+public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
+{
+	if(gPlayerObserving[playerid] >= 0 && IsKeyJustDown(KEY_SPRINT,newkeys,oldkeys)) {
+		// They're requesting to spawn, so take them out of observer mode
+		// this will cause them to spawn automatically, using the SpawnInfo
+		// we previously forced upon them during OnPlayerRequestClass
+		TogglePlayerSpectating(playerid,0);
+		gPlayerObserving[playerid] = (-1);
+		SendClientMessage(playerid,0xFFFFFFFF,"Leaving spectate");
+		return;
+	}
+	
+	if(gPlayerObserving[playerid] >= 0 && IsKeyJustDown(KEY_FIRE,newkeys,oldkeys)) {
+	   // They're requesting to change observer to another vehicle.
+	   ObserverSwitchToNextVehicle(playerid);
+	}
+}
+
+//------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+	GameTextForPlayer(playerid,"~w~SA-MP: ~r~RC Barnstorm",5000,5);
+	
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerDisconnect(playerid)
+{
+	if(gPlayerVehicles[playerid]) {
+	    // Make sure their vehicle is destroyed when they leave.
+    	DestroyVehicle(gPlayerVehicles[playerid]);
+    	gPlayerVehicles[playerid] = 0;
+	}
+	return 0;
+}
+
+//------------------------------------------------
+//rcbarron = 464
+
+public OnPlayerSpawn(playerid)
+{
+	// Create their own vehicle and put them in
+    gPlayerVehicles[playerid] = CreateVehicle(464,
+						gSpawnPositions[playerid][0],
+						gSpawnPositions[playerid][1],
+						gSpawnPositions[playerid][2],
+						gSpawnPositions[playerid][3],
+						-1,-1,10);
+
+    PutPlayerInVehicle(playerid,gPlayerVehicles[playerid],0);
+    //ForceClassSelection(playerid); // for next time they respawn
+    TextDrawHideForPlayer(playerid, txtObsHelper);
+    SetPlayerWorldBounds(playerid,200.0,-300.0,200.0,-200.0);
+   	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+	// We need to cleanup their vehicle
+	RemovePlayerFromVehicle(gPlayerVehicles[playerid]);
+	DestroyVehicle(gPlayerVehicles[playerid]);
+	gPlayerVehicles[playerid] = 0;
+	
+	// Send the death information to all clients
+	SendDeathMessage(killerid,playerid,reason);
+
+    // If anyone was observing them, they'll have to switch to the next
+    new x=0;
+    while(x!=MAX_PLAYERS) {
+        if(x != playerid && gPlayerObserving[x] == playerid) {
+            ObserverSwitchToNextVehicle(x);
+		}
+		x++;
+	}
+
+ 	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	// put them straight into observer mode, effectively
+	// bypassing class selection.
+ 	TogglePlayerSpectating(playerid,1);
+    ObserverSwitchToNextVehicle(playerid);
+    TextDrawShowForPlayer(playerid, txtObsHelper);
+
+    // also force this dud spawn info upon them so that they
+    // have spawn information set.
+    SetSpawnInfo(playerid,0,0,
+			gSpawnPositions[playerid][0],
+			gSpawnPositions[playerid][1],
+			gSpawnPositions[playerid][2],
+			gSpawnPositions[playerid][3],
+			-1,-1,-1,-1,-1,-1);
+    
+	return 0;
+}
+
+//------------------------------------------------
+
+public OnGameModeInit()
+{
+	SetGameModeText("RC Barnstorm");
+
+	// General settings for the gamemode
+	ShowPlayerMarkers(0);
+	ShowNameTags(1);
+	SetWorldTime(7);
+	SetWeather(5);
+
+	// Add a dud player class
+	AddPlayerClass(0,0.0,0.0,4.0,0.0,-1,-1,-1,-1,-1,-1);
+	
+	// Init our globals
+	new x=0;
+	while(x!=MAX_PLAYERS) {
+	    gPlayerVehicles[x] = 0;
+	    gPlayerObserving[x] = (-1);
+	    x++;
+	}
+	
+	// Init our observer helper text display
+	txtObsHelper = TextDrawCreate(20.0, 400.0,
+	"Press ~b~~k~~PED_SPRINT~ ~w~to spawn~n~Press ~b~~k~~PED_FIREWEAPON~ ~w~to switch players");
+	TextDrawUseBox(txtObsHelper, 0);
+	TextDrawFont(txtObsHelper, 2);
+	TextDrawSetShadow(txtObsHelper,0);
+    TextDrawSetOutline(txtObsHelper,1);
+    TextDrawBackgroundColor(txtObsHelper,0x000000FF);
+    TextDrawColor(txtObsHelper,0xFFFFFFFF);
+    
+	return 1;
+}
+
+//------------------------------------------------
+
+public OnPlayerUpdate(playerid)
+{
+	/*
+	new Keys,ud,lr;
+	
+	if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) {
+	    GetPlayerKeys(playerid,Keys,ud,lr);
+	    if(ud > 0) {
+	        SendClientMessage(playerid, 0xFFFFFFFF, "DOWN");
+		}
+		else if(ud < 0) {
+		    SendClientMessage(playerid, 0xFFFFFFFF, "UP");
+		}
+		
+		if(lr > 0) {
+	        SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT");
+		}
+		else if(lr < 0) {
+		    SendClientMessage(playerid, 0xFFFFFFFF, "LEFT");
+		}
+	}*/
+	
+	return 1;
+}
+
+//------------------------------------------------

BIN
samp03/gamemodes/grandlarc.amx


+ 457 - 0
samp03/gamemodes/grandlarc.pwn

@@ -0,0 +1,457 @@
+//----------------------------------------------------------
+//
+//  GRAND LARCENY  1.0
+//  A freeroam gamemode for SA-MP 0.3
+//
+//----------------------------------------------------------
+
+#include <a_samp>
+#include <core>
+#include <float>
+#include "../include/gl_common.inc"
+#include "../include/gl_spawns.inc"
+
+#pragma tabsize 0
+
+//----------------------------------------------------------
+
+#define COLOR_WHITE 		0xFFFFFFFF
+#define COLOR_NORMAL_PLAYER 0xFF4444FF
+
+#define CITY_LOS_SANTOS 	0
+#define CITY_SAN_FIERRO 	1
+#define CITY_LAS_VENTURAS 	2
+
+new total_vehicles_from_files=0;
+
+// Class selection globals
+new gPlayerCitySelection[MAX_PLAYERS];
+new gPlayerHasCitySelected[MAX_PLAYERS];
+new gPlayerLastCitySelectionTick[MAX_PLAYERS];
+
+new Text:txtClassSelHelper;
+new Text:txtLosSantos;
+new Text:txtSanFierro;
+new Text:txtLasVenturas;
+
+//----------------------------------------------------------
+
+main()
+{
+	print("\n---------------------------------------");
+	print("Running Grand Larceny - by the SA-MP team\n");
+	print("---------------------------------------\n");
+}
+
+//----------------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+	GameTextForPlayer(playerid,"~w~Grand Larceny",3000,4);
+  	SendClientMessage(playerid,COLOR_WHITE,"Welcome to Grand Larceny");
+  	
+  	// class selection init vars
+  	gPlayerCitySelection[playerid] = -1;
+	gPlayerHasCitySelected[playerid] = 0;
+	gPlayerLastCitySelectionTick[playerid] = GetTickCount();
+
+	//SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
+	
+	return 1;
+}
+
+//----------------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	if(IsPlayerNPC(playerid)) return 1;
+	
+	new randSpawn = 0;
+	
+	SetPlayerInterior(playerid,0);
+	TogglePlayerClock(playerid,0);
+ 	ResetPlayerMoney(playerid);
+	GivePlayerMoney(playerid, 30000);
+	
+	// if they ever return to class selection make them city
+	// select again first
+	gPlayerHasCitySelected[playerid] = 0;
+
+	if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
+ 	    randSpawn = random(sizeof(gRandomSpawns_LosSantos));
+ 	    SetPlayerPos(playerid,
+		 gRandomSpawns_LosSantos[randSpawn][0],
+		 gRandomSpawns_LosSantos[randSpawn][1],
+		 gRandomSpawns_LosSantos[randSpawn][2]);
+		SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
+	}
+	else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
+ 	    randSpawn = random(sizeof(gRandomSpawns_SanFierro));
+ 	    SetPlayerPos(playerid,
+		 gRandomSpawns_SanFierro[randSpawn][0],
+		 gRandomSpawns_SanFierro[randSpawn][1],
+		 gRandomSpawns_SanFierro[randSpawn][2]);
+		SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
+	}
+	else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
+ 	    randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
+ 	    SetPlayerPos(playerid,
+		 gRandomSpawns_LasVenturas[randSpawn][0],
+		 gRandomSpawns_LasVenturas[randSpawn][1],
+		 gRandomSpawns_LasVenturas[randSpawn][2]);
+		SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
+	}
+
+	//SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
+	
+	SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
+    SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);
+    
+    GivePlayerWeapon(playerid,WEAPON_COLT45,100);
+	//GivePlayerWeapon(playerid,WEAPON_MP5,100);
+	//TogglePlayerClock(playerid, 1);
+
+	return 1;
+}
+
+//----------------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+    new playercash;
+    
+	if(killerid == INVALID_PLAYER_ID) {
+        ResetPlayerMoney(playerid);
+	} else {
+		playercash = GetPlayerMoney(playerid);
+		if(playercash > 0)  {
+			GivePlayerMoney(killerid, playercash);
+			ResetPlayerMoney(playerid);
+		}
+	}
+   	return 1;
+}
+
+//----------------------------------------------------------
+
+ClassSel_SetupCharSelection(playerid)
+{
+   	if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
+		SetPlayerInterior(playerid,11);
+		SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
+		SetPlayerFacingAngle(playerid,0.0);
+    	SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
+		SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
+	}
+	else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
+		SetPlayerInterior(playerid,3);
+		SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516);
+		SetPlayerFacingAngle(playerid,181.0);
+    	SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516);
+		SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516);
+	}
+	else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
+		SetPlayerInterior(playerid,3);
+		SetPlayerPos(playerid,349.0453,193.2271,1014.1797);
+		SetPlayerFacingAngle(playerid,286.25);
+    	SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875);
+		SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797);
+	}
+	
+}
+
+//----------------------------------------------------------
+// Used to init textdraws of city names
+
+ClassSel_InitCityNameText(Text:txtInit)
+{
+  	TextDrawUseBox(txtInit, 0);
+	TextDrawLetterSize(txtInit,1.25,3.0);
+	TextDrawFont(txtInit, 0);
+	TextDrawSetShadow(txtInit,0);
+    TextDrawSetOutline(txtInit,1);
+    TextDrawColor(txtInit,0xEEEEEEFF);
+    TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
+}
+
+//----------------------------------------------------------
+
+ClassSel_InitTextDraws()
+{
+    // Init our observer helper text display
+	txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
+	ClassSel_InitCityNameText(txtLosSantos);
+	txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
+	ClassSel_InitCityNameText(txtSanFierro);
+	txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
+	ClassSel_InitCityNameText(txtLasVenturas);
+
+    // Init our observer helper text display
+	txtClassSelHelper = TextDrawCreate(10.0, 415.0,
+	   " Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select.");
+	TextDrawUseBox(txtClassSelHelper, 1);
+	TextDrawBoxColor(txtClassSelHelper,0x222222BB);
+	TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
+	TextDrawTextSize(txtClassSelHelper,400.0,40.0);
+	TextDrawFont(txtClassSelHelper, 2);
+	TextDrawSetShadow(txtClassSelHelper,0);
+    TextDrawSetOutline(txtClassSelHelper,1);
+    TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
+    TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
+}
+
+//----------------------------------------------------------
+
+ClassSel_SetupSelectedCity(playerid)
+{
+	if(gPlayerCitySelection[playerid] == -1) {
+		gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
+	}
+	
+	if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
+		SetPlayerInterior(playerid,0);
+   		SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0);
+		SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167);
+		
+		TextDrawShowForPlayer(playerid,txtLosSantos);
+		TextDrawHideForPlayer(playerid,txtSanFierro);
+		TextDrawHideForPlayer(playerid,txtLasVenturas);
+	}
+	else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
+		SetPlayerInterior(playerid,0);
+   		SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823);
+		SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589);
+		
+		TextDrawHideForPlayer(playerid,txtLosSantos);
+		TextDrawShowForPlayer(playerid,txtSanFierro);
+		TextDrawHideForPlayer(playerid,txtLasVenturas);
+	}
+	else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
+		SetPlayerInterior(playerid,0);
+   		SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390);
+		SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275);
+		
+		TextDrawHideForPlayer(playerid,txtLosSantos);
+		TextDrawHideForPlayer(playerid,txtSanFierro);
+		TextDrawShowForPlayer(playerid,txtLasVenturas);
+	}
+}
+
+//----------------------------------------------------------
+
+ClassSel_SwitchToNextCity(playerid)
+{
+    gPlayerCitySelection[playerid]++;
+	if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) {
+	    gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
+	}
+	PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
+	gPlayerLastCitySelectionTick[playerid] = GetTickCount();
+	ClassSel_SetupSelectedCity(playerid);
+}
+
+//----------------------------------------------------------
+
+ClassSel_SwitchToPreviousCity(playerid)
+{
+    gPlayerCitySelection[playerid]--;
+	if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) {
+	    gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
+	}
+	PlayerPlaySound(playerid,1053,0.0,0.0,0.0);
+	gPlayerLastCitySelectionTick[playerid] = GetTickCount();
+	ClassSel_SetupSelectedCity(playerid);
+}
+
+//----------------------------------------------------------
+
+ClassSel_HandleCitySelection(playerid)
+{
+	new Keys,ud,lr;
+    GetPlayerKeys(playerid,Keys,ud,lr);
+    
+    if(gPlayerCitySelection[playerid] == -1) {
+		ClassSel_SwitchToNextCity(playerid);
+		return;
+	}
+
+	// only allow new selection every ~500 ms
+	if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return;
+	
+	if(Keys & KEY_FIRE) {
+	    gPlayerHasCitySelected[playerid] = 1;
+	    TextDrawHideForPlayer(playerid,txtClassSelHelper);
+		TextDrawHideForPlayer(playerid,txtLosSantos);
+		TextDrawHideForPlayer(playerid,txtSanFierro);
+		TextDrawHideForPlayer(playerid,txtLasVenturas);
+	    TogglePlayerSpectating(playerid,0);
+	    return;
+	}
+	
+	if(lr > 0) {
+	   ClassSel_SwitchToNextCity(playerid);
+	}
+	else if(lr < 0) {
+	   ClassSel_SwitchToPreviousCity(playerid);
+	}
+}
+
+//----------------------------------------------------------
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	if(IsPlayerNPC(playerid)) return 1;
+
+	if(gPlayerHasCitySelected[playerid]) {
+		ClassSel_SetupCharSelection(playerid);
+		return 1;
+	} else {
+		if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) {
+			TogglePlayerSpectating(playerid,1);
+    		TextDrawShowForPlayer(playerid, txtClassSelHelper);
+    		gPlayerCitySelection[playerid] = -1;
+		}
+  	}
+    
+	return 0;
+}
+
+//----------------------------------------------------------
+
+public OnGameModeInit()
+{
+	SetGameModeText("Grand Larceny");
+	ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL);
+	ShowNameTags(1);
+	SetNameTagDrawDistance(40.0);
+	EnableStuntBonusForAll(0);
+	DisableInteriorEnterExits();
+	SetWeather(2);
+	
+	//LimitGlobalChatRadius(300.0);
+	
+	ClassSel_InitTextDraws();
+
+	// Player Class
+	AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+ 	AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(271,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(272,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+   	AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+	AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
+
+	// SPECIAL
+	total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
+	total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");
+
+   	// LAS VENTURAS
+     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
+    
+    // SAN FIERRO
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
+    
+    // LOS SANTOS
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
+    
+    // OTHER AREAS
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
+    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");
+
+    printf("Total vehicles from files: %d",total_vehicles_from_files);
+
+	return 1;
+}
+
+//----------------------------------------------------------
+
+public OnPlayerUpdate(playerid)
+{
+	if(!IsPlayerConnected(playerid)) return 0;
+	
+	// changing cities by inputs
+	if( !gPlayerHasCitySelected[playerid] &&
+	    GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) {
+	    ClassSel_HandleCitySelection(playerid);
+	    return 1;
+	}
+	
+	// No weapons in interiors
+	if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
+	    SetPlayerArmedWeapon(playerid,0); // fists
+	    return 0; // no syncing until they change their weapon
+	}
+	
+	// Don't allow minigun
+	if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
+	    Kick(playerid);
+	    return 0;
+	}
+	
+	// No jetpacks allowed
+	if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
+	    Kick(playerid);
+	    return 0;
+	}
+
+	return 1;
+}
+
+//----------------------------------------------------------

BIN
samp03/gamemodes/lvdm.amx


+ 932 - 0
samp03/gamemodes/lvdm.pwn

@@ -0,0 +1,932 @@
+#include <a_samp>
+#include <core>
+#include <float>
+
+#pragma tabsize 0
+
+#define COLOR_GREY 0xAFAFAFAA
+#define COLOR_GREEN 0x33AA33AA
+#define COLOR_RED 0xAA3333AA
+#define COLOR_YELLOW 0xFFFF00AA
+#define COLOR_WHITE 0xFFFFFFAA
+#define PocketMoney 50000 // Amount player recieves on spawn.
+#define INACTIVE_PLAYER_ID 255
+#define GIVECASH_DELAY 5000 // Time in ms between /givecash commands.
+
+#define NUMVALUES 4
+
+forward MoneyGrubScoreUpdate();
+forward Givecashdelaytimer(playerid);
+forward SetPlayerRandomSpawn(playerid);
+forward SetupPlayerForClassSelection(playerid);
+forward GameModeExitFunc();
+forward SendPlayerFormattedText(playerid, const str[], define);
+forward public SendAllFormattedText(playerid, const str[], define);
+
+//------------------------------------------------------------------------------------------------------
+
+new CashScoreOld;
+new iSpawnSet[MAX_PLAYERS];
+
+new Float:gRandomPlayerSpawns[23][3] = {
+{1958.3783,1343.1572,15.3746},
+{2199.6531,1393.3678,10.8203},
+{2483.5977,1222.0825,10.8203},
+{2637.2712,1129.2743,11.1797},
+{2000.0106,1521.1111,17.0625},
+{2024.8190,1917.9425,12.3386},
+{2261.9048,2035.9547,10.8203},
+{2262.0986,2398.6572,10.8203},
+{2244.2566,2523.7280,10.8203},
+{2335.3228,2786.4478,10.8203},
+{2150.0186,2734.2297,11.1763},
+{2158.0811,2797.5488,10.8203},
+{1969.8301,2722.8564,10.8203},
+{1652.0555,2709.4072,10.8265},
+{1564.0052,2756.9463,10.8203},
+{1271.5452,2554.0227,10.8203},
+{1441.5894,2567.9099,10.8203},
+{1480.6473,2213.5718,11.0234},
+{1400.5906,2225.6960,11.0234},
+{1598.8419,2221.5676,11.0625},
+{1318.7759,1251.3580,10.8203},
+{1558.0731,1007.8292,10.8125},
+//{-857.0551,1536.6832,22.5870},   Out of Town Spawns
+//{817.3494,856.5039,12.7891},
+//{116.9315,1110.1823,13.6094},
+//{-18.8529,1176.0159,19.5634},
+//{-315.0575,1774.0636,43.6406},
+{1705.2347,1025.6808,10.8203}
+};
+
+new Float:gCopPlayerSpawns[2][3] = {
+{2297.1064,2452.0115,10.8203},
+{2297.0452,2468.6743,10.8203}
+};
+
+//Round code stolen from mike's Manhunt :P
+//new gRoundTime = 3600000;                   // Round time - 1 hour
+//new gRoundTime = 1200000;					// Round time - 20 mins
+//new gRoundTime = 900000;					// Round time - 15 mins
+//new gRoundTime = 600000;					// Round time - 10 mins
+//new gRoundTime = 300000;					// Round time - 5 mins
+//new gRoundTime = 120000;					// Round time - 2 mins
+//new gRoundTime = 60000;					// Round time - 1 min
+
+new gActivePlayers[MAX_PLAYERS];
+new gLastGaveCash[MAX_PLAYERS];
+
+//------------------------------------------------------------------------------------------------------
+
+main()
+{
+		print("\n----------------------------------");
+		print("  Running LVDM ~MoneyGrub\n");
+		print("         Coded By");
+		print("            Jax");
+		print("----------------------------------\n");
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerRequestSpawn(playerid)
+{
+	//printf("OnPlayerRequestSpawn(%d)",playerid);
+	return 1;
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerPickUpPickup(playerid, pickupid)
+{
+	//new s[256];
+	//format(s,256,"Picked up %d",pickupid);
+	//SendClientMessage(playerid,0xFFFFFFFF,s);
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public MoneyGrubScoreUpdate()
+{
+	new CashScore;
+	new name[MAX_PLAYER_NAME];
+	//new string[256];
+	for(new i=0; i<MAX_PLAYERS; i++)
+	{
+		if (IsPlayerConnected(i))
+		{
+			GetPlayerName(i, name, sizeof(name));
+   			CashScore = GetPlayerMoney(i);
+			SetPlayerScore(i, CashScore);
+			if (CashScore > CashScoreOld)
+			{
+				CashScoreOld = CashScore;
+				//format(string, sizeof(string), "$$$ %s is now in the lead $$$", name);
+				//SendClientMessageToAll(COLOR_YELLOW, string);
+			}
+		}
+	}
+}
+
+//------------------------------------------------------------------------------------------------------
+
+/*public GrubModeReset()
+{
+	for(new i=0; i<MAX_PLAYERS; i++)
+	{
+		if (IsPlayerConnected(i))
+		{
+			SetPlayerScore(i, PocketMoney);
+			SetPlayerRandomSpawn(i, classid);
+		}
+	}
+
+}*/
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+	GameTextForPlayer(playerid,"~w~SA-MP: ~r~Las Venturas ~g~MoneyGrub",5000,5);
+	SendPlayerFormattedText(playerid, "Welcome to Las Venturas MoneyGrub, For help type /help.", 0);
+	gActivePlayers[playerid]++;
+	gLastGaveCash[playerid] = GetTickCount();
+	return 1;
+}
+
+//------------------------------------------------------------------------------------------------------
+public OnPlayerDisconnect(playerid)
+{
+	gActivePlayers[playerid]--;
+}
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerCommandText(playerid, cmdtext[])
+{
+	new string[256];
+	new playermoney;
+	new sendername[MAX_PLAYER_NAME];
+	new giveplayer[MAX_PLAYER_NAME];
+	new cmd[256];
+	new giveplayerid, moneys, idx;
+
+	cmd = strtok(cmdtext, idx);
+
+	if(strcmp(cmd, "/help", true) == 0) {
+		SendPlayerFormattedText(playerid,"Las Venturas Deathmatch: Money Grub Coded By Jax and the SA-MP Team.",0);
+		SendPlayerFormattedText(playerid,"Type: /objective : to find out what to do in this gamemode.",0);
+		SendPlayerFormattedText(playerid,"Type: /givecash [playerid] [money-amount] to send money to other players.",0);
+		SendPlayerFormattedText(playerid,"Type: /tips : to see some tips from the creator of the gamemode.", 0);
+    return 1;
+	}
+	if(strcmp(cmd, "/objective", true) == 0) {
+		SendPlayerFormattedText(playerid,"This gamemode is faily open, there's no specific win / endgame conditions to meet.",0);
+		SendPlayerFormattedText(playerid,"In LVDM:Money Grub, when you kill a player, you will receive whatever money they have.",0);
+		SendPlayerFormattedText(playerid,"Consequently, if you have lots of money, and you die, your killer gets your cash.",0);
+		SendPlayerFormattedText(playerid,"However, you're not forced to kill players for money, you can always gamble in the", 0);
+		SendPlayerFormattedText(playerid,"Casino's.", 0);
+    return 1;
+	}
+	if(strcmp(cmd, "/tips", true) == 0) {
+		SendPlayerFormattedText(playerid,"Spawning with just a desert eagle might sound lame, however the idea of this",0);
+		SendPlayerFormattedText(playerid,"gamemode is to get some cash, get better guns, then go after whoever has the",0);
+		SendPlayerFormattedText(playerid,"most cash. Once you've got the most cash, the idea is to stay alive(with the",0);
+		SendPlayerFormattedText(playerid,"cash intact)until the game ends, simple right?", 0);
+    return 1;
+	}
+	
+ 	if(strcmp(cmd, "/givecash", true) == 0) {
+	    new tmp[256];
+		tmp = strtok(cmdtext, idx);
+
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
+			return 1;
+		}
+		giveplayerid = strval(tmp);
+		
+		tmp = strtok(cmdtext, idx);
+		if(!strlen(tmp)) {
+			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
+			return 1;
+		}
+ 		moneys = strval(tmp);
+		
+		//printf("givecash_command: %d %d",giveplayerid,moneys);
+
+		
+		if (IsPlayerConnected(giveplayerid)) {
+			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
+			GetPlayerName(playerid, sendername, sizeof(sendername));
+			playermoney = GetPlayerMoney(playerid);
+			if (moneys > 0 && playermoney >= moneys) {
+				GivePlayerMoney(playerid, (0 - moneys));
+				GivePlayerMoney(giveplayerid, moneys);
+				format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
+				SendClientMessage(playerid, COLOR_YELLOW, string);
+				format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
+				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
+				printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
+			}
+			else {
+				SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
+			}
+		}
+		else {
+				format(string, sizeof(string), "%d is not an active player.", giveplayerid);
+				SendClientMessage(playerid, COLOR_YELLOW, string);
+			}
+		return 1;
+	}
+	
+	// PROCESS OTHER COMMANDS
+	
+	
+	return 0;
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	GivePlayerMoney(playerid, PocketMoney);
+	SetPlayerInterior(playerid,0);
+	SetPlayerRandomSpawn(playerid);
+	TogglePlayerClock(playerid,1);
+	return 1;
+}
+
+public SetPlayerRandomSpawn(playerid)
+{
+	if (iSpawnSet[playerid] == 1)
+	{
+		new rand = random(sizeof(gCopPlayerSpawns));
+		SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
+		SetPlayerFacingAngle(playerid, 270.0);
+    }
+    else if (iSpawnSet[playerid] == 0)
+    {
+		new rand = random(sizeof(gRandomPlayerSpawns));
+		SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
+	}
+	return 1;
+}
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+    new playercash;
+	if(killerid == INVALID_PLAYER_ID) {
+        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
+        ResetPlayerMoney(playerid);
+	} else {
+	    	SendDeathMessage(killerid,playerid,reason);
+			SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
+			playercash = GetPlayerMoney(playerid);
+			if (playercash > 0)  {
+				GivePlayerMoney(killerid, playercash);
+				ResetPlayerMoney(playerid);
+			}
+			else
+			{
+			}
+     	}
+ 	return 1;
+}
+
+/* public OnPlayerDeath(playerid, killerid, reason)
+{   haxed by teh mike
+	new name[MAX_PLAYER_NAME];
+	new string[256];
+	new deathreason[20];
+	new playercash;
+	GetPlayerName(playerid, name, sizeof(name));
+	GetWeaponName(reason, deathreason, 20);
+	if (killerid == INVALID_PLAYER_ID) {
+	    switch (reason) {
+			case WEAPON_DROWN:
+			{
+                format(string, sizeof(string), "*** %s drowned.)", name);
+			}
+			default:
+			{
+			    if (strlen(deathreason) > 0) {
+					format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
+				} else {
+				    format(string, sizeof(string), "*** %s died.", name);
+				}
+			}
+		}
+	}
+	else {
+	new killer[MAX_PLAYER_NAME];
+	GetPlayerName(killerid, killer, sizeof(killer));
+	if (strlen(deathreason) > 0) {
+		format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason);
+		} else {
+				format(string, sizeof(string), "*** %s killed %s.", killer, name);
+			}
+		}
+	SendClientMessageToAll(COLOR_RED, string);
+		{
+		playercash = GetPlayerMoney(playerid);
+		if (playercash > 0)
+		{
+			GivePlayerMoney(killerid, playercash);
+			ResetPlayerMoney(playerid);
+		}
+		else
+		{
+		}
+	}
+ 	return 1;
+}*/
+
+//------------------------------------------------------------------------------------------------------
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	iSpawnSet[playerid] = 0;
+	SetupPlayerForClassSelection(playerid);
+	return 1;
+}
+
+public SetupPlayerForClassSelection(playerid)
+{
+ 	SetPlayerInterior(playerid,14);
+	SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
+	SetPlayerFacingAngle(playerid, 270.0);
+	SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
+	SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
+}
+
+public GameModeExitFunc()
+{
+	GameModeExit();
+}
+
+public OnGameModeInit()
+{
+	SetGameModeText("Ventura's DM~MG");
+
+	ShowPlayerMarkers(1);
+	ShowNameTags(1);
+	EnableStuntBonusForAll(0);
+
+	// Player Class's
+	AddPlayerClass(0,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(266,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(267,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(268,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(269,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(270,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(271,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(272,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	
+	AddPlayerClass(280,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(281,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(282,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(283,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(284,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(285,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(286,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(287,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	
+	AddPlayerClass(254,1958.3783,1343.1572,15.3746,0.0,0,0,24,300,-1,-1);
+	AddPlayerClass(255,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(256,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(257,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(258,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(259,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(260,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(261,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(262,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(263,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(264,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(274,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(275,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(276,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	
+	AddPlayerClass(1,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(2,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(290,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(291,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(292,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(293,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(294,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(295,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(296,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(297,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(298,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+    AddPlayerClass(299,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+
+	AddPlayerClass(277,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(278,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(279,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(288,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(47,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(48,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(49,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(50,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(51,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(52,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(53,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(54,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(55,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(56,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(57,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(58,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(59,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(60,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(61,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(62,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(63,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(64,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(66,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(67,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(68,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(69,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(70,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(71,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(72,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(73,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(75,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(76,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(78,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(79,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(80,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(81,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(82,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(83,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(84,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(85,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(87,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(88,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(89,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(91,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(92,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(93,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(95,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(96,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(97,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(98,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(99,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(100,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(101,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(102,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(103,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(104,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(105,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(106,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(107,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(108,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(109,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(110,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(111,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(112,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(113,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(114,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(115,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(116,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(117,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(118,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(120,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(121,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(122,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(123,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(124,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(125,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(126,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(127,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(128,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(129,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(131,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(133,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(134,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(135,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(136,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(137,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(138,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(139,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(140,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(141,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(142,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(143,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(144,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(145,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(146,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(147,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(148,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(150,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(151,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(152,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(153,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(154,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(155,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(156,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(157,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(158,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(159,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(160,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(161,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(162,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(163,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(164,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(165,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(166,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(167,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(168,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(169,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(170,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(171,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(172,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(173,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(174,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(175,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(176,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(177,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(178,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(179,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(180,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(181,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(182,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(183,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(184,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(185,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(186,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(187,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(188,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(189,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(190,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(191,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(192,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(193,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(194,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(195,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(196,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(197,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(198,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(199,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(200,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(201,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(202,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(203,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(204,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(205,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(206,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(207,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(209,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(210,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(211,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(212,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(213,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(214,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(215,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(216,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(217,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(218,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(219,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(220,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(221,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(222,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(223,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(224,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(225,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(226,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(227,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(228,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(229,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(230,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(231,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(232,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(233,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(234,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(235,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(236,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(237,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(238,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(239,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(240,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(241,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(242,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(243,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(244,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(245,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(246,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(247,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(248,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(249,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(250,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(251,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+	AddPlayerClass(253,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
+
+	// Car Spawns
+
+	AddStaticVehicle(451,2040.0520,1319.2799,10.3779,183.2439,16,16);
+	AddStaticVehicle(429,2040.5247,1359.2783,10.3516,177.1306,13,13);
+	AddStaticVehicle(421,2110.4102,1398.3672,10.7552,359.5964,13,13);
+	AddStaticVehicle(411,2074.9624,1479.2120,10.3990,359.6861,64,64);
+	AddStaticVehicle(477,2075.6038,1666.9750,10.4252,359.7507,94,94);
+	AddStaticVehicle(541,2119.5845,1938.5969,10.2967,181.9064,22,22);
+	AddStaticVehicle(541,1843.7881,1216.0122,10.4556,270.8793,60,1);
+	AddStaticVehicle(402,1944.1003,1344.7717,8.9411,0.8168,30,30);
+	AddStaticVehicle(402,1679.2278,1316.6287,10.6520,180.4150,90,90);
+	AddStaticVehicle(415,1685.4872,1751.9667,10.5990,268.1183,25,1);
+	AddStaticVehicle(411,2034.5016,1912.5874,11.9048,0.2909,123,1);
+	AddStaticVehicle(411,2172.1682,1988.8643,10.5474,89.9151,116,1);
+	AddStaticVehicle(429,2245.5759,2042.4166,10.5000,270.7350,14,14);
+	AddStaticVehicle(477,2361.1538,1993.9761,10.4260,178.3929,101,1);
+	AddStaticVehicle(550,2221.9946,1998.7787,9.6815,92.6188,53,53);
+	AddStaticVehicle(558,2243.3833,1952.4221,14.9761,359.4796,116,1);
+	AddStaticVehicle(587,2276.7085,1938.7263,31.5046,359.2321,40,1);
+	AddStaticVehicle(587,2602.7769,1853.0667,10.5468,91.4813,43,1);
+	AddStaticVehicle(603,2610.7600,1694.2588,10.6585,89.3303,69,1);
+	AddStaticVehicle(587,2635.2419,1075.7726,10.5472,89.9571,53,1);
+	AddStaticVehicle(437,2577.2354,1038.8063,10.4777,181.7069,35,1);
+	AddStaticVehicle(535,2039.1257,1545.0879,10.3481,359.6690,123,1);
+	AddStaticVehicle(535,2009.8782,2411.7524,10.5828,178.9618,66,1);
+	AddStaticVehicle(429,2010.0841,2489.5510,10.5003,268.7720,1,2);
+	AddStaticVehicle(415,2076.4033,2468.7947,10.5923,359.9186,36,1);
+	AddStaticVehicle(487,2093.2754,2414.9421,74.7556,89.0247,26,57);
+	AddStaticVehicle(506,2352.9026,2577.9768,10.5201,0.4091,7,7);
+	AddStaticVehicle(506,2166.6963,2741.0413,10.5245,89.7816,52,52);
+	AddStaticVehicle(411,1960.9989,2754.9072,10.5473,200.4316,112,1);
+	AddStaticVehicle(429,1919.5863,2760.7595,10.5079,100.0753,2,1);
+	AddStaticVehicle(415,1673.8038,2693.8044,10.5912,359.7903,40,1);
+	AddStaticVehicle(402,1591.0482,2746.3982,10.6519,172.5125,30,30);
+	AddStaticVehicle(603,1580.4537,2838.2886,10.6614,181.4573,75,77);
+	AddStaticVehicle(550,1555.2734,2750.5261,10.6388,91.7773,62,62);
+	AddStaticVehicle(535,1455.9305,2878.5288,10.5837,181.0987,118,1);
+	AddStaticVehicle(477,1537.8425,2578.0525,10.5662,0.0650,121,1);
+	AddStaticVehicle(451,1433.1594,2607.3762,10.3781,88.0013,16,16);
+	AddStaticVehicle(603,2223.5898,1288.1464,10.5104,182.0297,18,1);
+	AddStaticVehicle(558,2451.6707,1207.1179,10.4510,179.8960,24,1);
+	AddStaticVehicle(550,2461.7253,1357.9705,10.6389,180.2927,62,62);
+	AddStaticVehicle(558,2461.8162,1629.2268,10.4496,181.4625,117,1);
+	AddStaticVehicle(477,2395.7554,1658.9591,10.5740,359.7374,0,1);
+	AddStaticVehicle(404,1553.3696,1020.2884,10.5532,270.6825,119,50);
+	AddStaticVehicle(400,1380.8304,1159.1782,10.9128,355.7117,123,1);
+	AddStaticVehicle(418,1383.4630,1035.0420,10.9131,91.2515,117,227);
+	AddStaticVehicle(404,1445.4526,974.2831,10.5534,1.6213,109,100);
+	AddStaticVehicle(400,1704.2365,940.1490,10.9127,91.9048,113,1);
+	AddStaticVehicle(404,1658.5463,1028.5432,10.5533,359.8419,101,101);
+	AddStaticVehicle(581,1677.6628,1040.1930,10.4136,178.7038,58,1);
+	AddStaticVehicle(581,1383.6959,1042.2114,10.4121,85.7269,66,1);
+	AddStaticVehicle(581,1064.2332,1215.4158,10.4157,177.2942,72,1);
+	AddStaticVehicle(581,1111.4536,1788.3893,10.4158,92.4627,72,1);
+	AddStaticVehicle(522,953.2818,1806.1392,8.2188,235.0706,3,8);
+	AddStaticVehicle(522,995.5328,1886.6055,10.5359,90.1048,3,8);
+	AddStaticVehicle(521,993.7083,2267.4133,11.0315,1.5610,75,13);
+	AddStaticVehicle(535,1439.5662,1999.9822,10.5843,0.4194,66,1);
+	AddStaticVehicle(522,1430.2354,1999.0144,10.3896,352.0951,6,25);
+	AddStaticVehicle(522,2156.3540,2188.6572,10.2414,22.6504,6,25);
+	AddStaticVehicle(598,2277.6846,2477.1096,10.5652,180.1090,0,1);
+	AddStaticVehicle(598,2268.9888,2443.1697,10.5662,181.8062,0,1);
+	AddStaticVehicle(598,2256.2891,2458.5110,10.5680,358.7335,0,1);
+	AddStaticVehicle(598,2251.6921,2477.0205,10.5671,179.5244,0,1);
+	AddStaticVehicle(523,2294.7305,2441.2651,10.3860,9.3764,0,0);
+	AddStaticVehicle(523,2290.7268,2441.3323,10.3944,16.4594,0,0);
+	AddStaticVehicle(523,2295.5503,2455.9656,2.8444,272.6913,0,0);
+	AddStaticVehicle(522,2476.7900,2532.2222,21.4416,0.5081,8,82);
+	AddStaticVehicle(522,2580.5320,2267.9595,10.3917,271.2372,8,82);
+	AddStaticVehicle(522,2814.4331,2364.6641,10.3907,89.6752,36,105);
+	AddStaticVehicle(535,2827.4143,2345.6953,10.5768,270.0668,97,1);
+	AddStaticVehicle(521,1670.1089,1297.8322,10.3864,359.4936,87,118);
+	AddStaticVehicle(487,1614.7153,1548.7513,11.2749,347.1516,58,8);
+	AddStaticVehicle(487,1647.7902,1538.9934,11.2433,51.8071,0,8);
+	AddStaticVehicle(487,1608.3851,1630.7268,11.2840,174.5517,58,8);
+	AddStaticVehicle(476,1283.0006,1324.8849,9.5332,275.0468,7,6); //11.5332
+	AddStaticVehicle(476,1283.5107,1361.3171,9.5382,271.1684,1,6); //11.5382
+	AddStaticVehicle(476,1283.6847,1386.5137,11.5300,272.1003,89,91);
+	AddStaticVehicle(476,1288.0499,1403.6605,11.5295,243.5028,119,117);
+	AddStaticVehicle(415,1319.1038,1279.1791,10.5931,0.9661,62,1);
+	AddStaticVehicle(521,1710.5763,1805.9275,10.3911,176.5028,92,3);
+	AddStaticVehicle(521,2805.1650,2027.0028,10.3920,357.5978,92,3);
+	AddStaticVehicle(535,2822.3628,2240.3594,10.5812,89.7540,123,1);
+	AddStaticVehicle(521,2876.8013,2326.8418,10.3914,267.8946,115,118);
+	AddStaticVehicle(429,2842.0554,2637.0105,10.5000,182.2949,1,3);
+	AddStaticVehicle(549,2494.4214,2813.9348,10.5172,316.9462,72,39);
+	AddStaticVehicle(549,2327.6484,2787.7327,10.5174,179.5639,75,39);
+	AddStaticVehicle(549,2142.6970,2806.6758,10.5176,89.8970,79,39);
+	AddStaticVehicle(521,2139.7012,2799.2114,10.3917,229.6327,25,118);
+	AddStaticVehicle(521,2104.9446,2658.1331,10.3834,82.2700,36,0);
+	AddStaticVehicle(521,1914.2322,2148.2590,10.3906,267.7297,36,0);
+	AddStaticVehicle(549,1904.7527,2157.4312,10.5175,183.7728,83,36);
+	AddStaticVehicle(549,1532.6139,2258.0173,10.5176,359.1516,84,36);
+	AddStaticVehicle(521,1534.3204,2202.8970,10.3644,4.9108,118,118);
+	AddStaticVehicle(549,1613.1553,2200.2664,10.5176,89.6204,89,35);
+	AddStaticVehicle(400,1552.1292,2341.7854,10.9126,274.0815,101,1);
+	AddStaticVehicle(404,1637.6285,2329.8774,10.5538,89.6408,101,101);
+	AddStaticVehicle(400,1357.4165,2259.7158,10.9126,269.5567,62,1);
+	AddStaticVehicle(411,1281.7458,2571.6719,10.5472,270.6128,106,1);
+	AddStaticVehicle(522,1305.5295,2528.3076,10.3955,88.7249,3,8);
+	AddStaticVehicle(521,993.9020,2159.4194,10.3905,88.8805,74,74);
+	AddStaticVehicle(415,1512.7134,787.6931,10.5921,359.5796,75,1);
+	AddStaticVehicle(522,2299.5872,1469.7910,10.3815,258.4984,3,8);
+	AddStaticVehicle(522,2133.6428,1012.8537,10.3789,87.1290,3,8);
+
+	//Monday 13th Additions ~ Jax
+	AddStaticVehicle(415,2266.7336,648.4756,11.0053,177.8517,0,1); //
+	AddStaticVehicle(461,2404.6636,647.9255,10.7919,183.7688,53,1); //
+	AddStaticVehicle(506,2628.1047,746.8704,10.5246,352.7574,3,3); //
+	AddStaticVehicle(549,2817.6445,928.3469,10.4470,359.5235,72,39); //
+	// --- uncommented
+	AddStaticVehicle(562,1919.8829,947.1886,10.4715,359.4453,11,1); //
+	AddStaticVehicle(562,1881.6346,1006.7653,10.4783,86.9967,11,1); //
+	AddStaticVehicle(562,2038.1044,1006.4022,10.4040,179.2641,11,1); //
+	AddStaticVehicle(562,2038.1614,1014.8566,10.4057,179.8665,11,1); //
+	AddStaticVehicle(562,2038.0966,1026.7987,10.4040,180.6107,11,1); //
+	// --- uncommented end
+
+	//Uber haxed
+	AddStaticVehicle(422,9.1065,1165.5066,19.5855,2.1281,101,25); //
+	AddStaticVehicle(463,19.8059,1163.7103,19.1504,346.3326,11,11); //
+	AddStaticVehicle(463,12.5740,1232.2848,18.8822,121.8670,22,22); //
+	//AddStaticVehicle(434,-110.8473,1133.7113,19.7091,359.7000,2,2); //hotknife
+	AddStaticVehicle(586,69.4633,1217.0189,18.3304,158.9345,10,1); //
+	AddStaticVehicle(586,-199.4185,1223.0405,19.2624,176.7001,25,1); //
+	//AddStaticVehicle(605,-340.2598,1177.4846,19.5565,182.6176,43,8); // SMASHED UP CAR
+	AddStaticVehicle(476,325.4121,2538.5999,17.5184,181.2964,71,77); //
+	AddStaticVehicle(476,291.0975,2540.0410,17.5276,182.7206,7,6); //
+	AddStaticVehicle(576,384.2365,2602.1763,16.0926,192.4858,72,1); //
+	AddStaticVehicle(586,423.8012,2541.6870,15.9708,338.2426,10,1); //
+	AddStaticVehicle(586,-244.0047,2724.5439,62.2077,51.5825,10,1); //
+	AddStaticVehicle(586,-311.1414,2659.4329,62.4513,310.9601,27,1); //
+
+	//uber haxed x 50
+	//AddStaticVehicle(406,547.4633,843.0204,-39.8406,285.2948,1,1); // DUMPER
+	//AddStaticVehicle(406,625.1979,828.9873,-41.4497,71.3360,1,1); // DUMPER
+	//AddStaticVehicle(486,680.7997,919.0510,-40.4735,105.9145,1,1); // DOZER
+	//AddStaticVehicle(486,674.3994,927.7518,-40.6087,128.6116,1,1); // DOZER
+	AddStaticVehicle(543,596.8064,866.2578,-43.2617,186.8359,67,8); //
+	AddStaticVehicle(543,835.0838,836.8370,11.8739,14.8920,8,90); //
+	AddStaticVehicle(549,843.1893,838.8093,12.5177,18.2348,79,39); //
+	//AddStaticVehicle(605,319.3803,740.2404,6.7814,271.2593,8,90); // SMASHED UP CAR
+	AddStaticVehicle(400,-235.9767,1045.8623,19.8158,180.0806,75,1); //
+	AddStaticVehicle(599,-211.5940,998.9857,19.8437,265.4935,0,1); //
+	AddStaticVehicle(422,-304.0620,1024.1111,19.5714,94.1812,96,25); //
+	AddStaticVehicle(588,-290.2229,1317.0276,54.1871,81.7529,1,1); //
+	//AddStaticVehicle(424,-330.2399,1514.3022,75.1388,179.1514,2,2); //BF INJECT
+	AddStaticVehicle(451,-290.3145,1567.1534,75.0654,133.1694,61,61); //
+	AddStaticVehicle(470,280.4914,1945.6143,17.6317,310.3278,43,0); //
+	AddStaticVehicle(470,272.2862,1949.4713,17.6367,285.9714,43,0); //
+	AddStaticVehicle(470,271.6122,1961.2386,17.6373,251.9081,43,0); //
+	AddStaticVehicle(470,279.8705,1966.2362,17.6436,228.4709,43,0); //
+	//AddStaticVehicle(548,292.2317,1923.6440,19.2898,235.3379,1,1); // CARGOBOB
+	AddStaticVehicle(433,277.6437,1985.7559,18.0772,270.4079,43,0); //
+	AddStaticVehicle(433,277.4477,1994.8329,18.0773,267.7378,43,0); //
+	//AddStaticVehicle(432,275.9634,2024.3629,17.6516,270.6823,43,0); // Tank (can cause scary shit to go down)
+	AddStaticVehicle(568,-441.3438,2215.7026,42.2489,191.7953,41,29); //
+	AddStaticVehicle(568,-422.2956,2225.2612,42.2465,0.0616,41,29); //
+	AddStaticVehicle(568,-371.7973,2234.5527,42.3497,285.9481,41,29); //
+	AddStaticVehicle(568,-360.1159,2203.4272,42.3039,113.6446,41,29); //
+	AddStaticVehicle(468,-660.7385,2315.2642,138.3866,358.7643,6,6); //
+	AddStaticVehicle(460,-1029.2648,2237.2217,42.2679,260.5732,1,3); //
+
+	//Uber haxed x 100
+
+    // --- uncommented
+	AddStaticVehicle(419,95.0568,1056.5530,13.4068,192.1461,13,76); //
+	AddStaticVehicle(429,114.7416,1048.3517,13.2890,174.9752,1,2); //
+	//AddStaticVehicle(466,124.2480,1075.1835,13.3512,174.5334,78,76); // exceeds model limit
+	AddStaticVehicle(411,-290.0065,1759.4958,42.4154,89.7571,116,1); //
+	// --- uncommented end
+	AddStaticVehicle(522,-302.5649,1777.7349,42.2514,238.5039,6,25); //
+	AddStaticVehicle(522,-302.9650,1776.1152,42.2588,239.9874,8,82); //
+	AddStaticVehicle(533,-301.0404,1750.8517,42.3966,268.7585,75,1); //
+	AddStaticVehicle(535,-866.1774,1557.2700,23.8319,269.3263,31,1); //
+	AddStaticVehicle(550,-799.3062,1518.1556,26.7488,88.5295,53,53); //
+	AddStaticVehicle(521,-749.9730,1589.8435,26.5311,125.6508,92,3); //
+	AddStaticVehicle(522,-867.8612,1544.5282,22.5419,296.0923,3,3); //
+	AddStaticVehicle(554,-904.2978,1553.8269,25.9229,266.6985,34,30); //
+	AddStaticVehicle(521,-944.2642,1424.1603,29.6783,148.5582,92,3); //
+	// Exceeds model limit, cars need model adjustments
+	// --- uncommented
+	AddStaticVehicle(429,-237.7157,2594.8804,62.3828,178.6802,1,2); //
+	//AddStaticVehicle(431,-160.5815,2693.7185,62.2031,89.4133,47,74); //
+	AddStaticVehicle(463,-196.3012,2774.4395,61.4775,303.8402,22,22); //
+	//AddStaticVehicle(483,-204.1827,2608.7368,62.6956,179.9914,1,5); //
+	//AddStaticVehicle(490,-295.4756,2674.9141,62.7434,359.3378,0,0); //
+	//AddStaticVehicle(500,-301.5293,2687.6013,62.7723,87.9509,28,119); //
+	//AddStaticVehicle(500,-301.6699,2680.3293,62.7393,89.7925,13,119); //
+	AddStaticVehicle(519,-1341.1079,-254.3787,15.0701,321.6338,1,1); //
+	AddStaticVehicle(519,-1371.1775,-232.3967,15.0676,315.6091,1,1); //
+	//AddStaticVehicle(552,-1396.2028,-196.8298,13.8434,286.2720,56,56); //
+	//AddStaticVehicle(552,-1312.4509,-284.4692,13.8417,354.3546,56,56); //
+	//AddStaticVehicle(552,-1393.5995,-521.0770,13.8441,187.1324,56,56); //
+	//AddStaticVehicle(513,-1355.6632,-488.9562,14.7157,191.2547,48,18); //
+	//AddStaticVehicle(513,-1374.4580,-499.1462,14.7482,220.4057,54,34); //
+	//AddStaticVehicle(553,-1197.8773,-489.6715,15.4841,0.4029,91,87); //
+	//AddStaticVehicle(553,1852.9989,-2385.4009,14.8827,200.0707,102,119); //
+	//AddStaticVehicle(583,1879.9594,-2349.1919,13.0875,11.0992,1,1); //
+	//AddStaticVehicle(583,1620.9697,-2431.0752,13.0951,126.3341,1,1); //
+	//AddStaticVehicle(583,1545.1564,-2409.2114,13.0953,23.5581,1,1); //
+	//AddStaticVehicle(583,1656.3702,-2651.7913,13.0874,352.7619,1,1); //
+	AddStaticVehicle(519,1642.9850,-2425.2063,14.4744,159.8745,1,1); //
+	AddStaticVehicle(519,1734.1311,-2426.7563,14.4734,172.2036,1,1); //
+	// --- uncommented end
+	
+	AddStaticVehicle(415,-680.9882,955.4495,11.9032,84.2754,36,1); //
+	AddStaticVehicle(460,-816.3951,2222.7375,43.0045,268.1861,1,3); //
+	AddStaticVehicle(460,-94.6885,455.4018,1.5719,250.5473,1,3); //
+	AddStaticVehicle(460,1624.5901,565.8568,1.7817,200.5292,1,3); //
+	AddStaticVehicle(460,1639.3567,572.2720,1.5311,206.6160,1,3); //
+	AddStaticVehicle(460,2293.4219,517.5514,1.7537,270.7889,1,3); //
+	AddStaticVehicle(460,2354.4690,518.5284,1.7450,270.2214,1,3); //
+	AddStaticVehicle(460,772.4293,2912.5579,1.0753,69.6706,1,3); //
+
+	// 22/4 UPDATE
+	AddStaticVehicle(560,2133.0769,1019.2366,10.5259,90.5265,9,39); //
+	AddStaticVehicle(560,2142.4023,1408.5675,10.5258,0.3660,17,1); //
+	AddStaticVehicle(560,2196.3340,1856.8469,10.5257,179.8070,21,1); //
+	AddStaticVehicle(560,2103.4146,2069.1514,10.5249,270.1451,33,0); //
+	AddStaticVehicle(560,2361.8042,2210.9951,10.3848,178.7366,37,0); //
+	AddStaticVehicle(560,-1993.2465,241.5329,34.8774,310.0117,41,29); //
+	AddStaticVehicle(559,-1989.3235,270.1447,34.8321,88.6822,58,8); //
+	AddStaticVehicle(559,-1946.2416,273.2482,35.1302,126.4200,60,1); //
+	AddStaticVehicle(558,-1956.8257,271.4941,35.0984,71.7499,24,1); //
+	AddStaticVehicle(562,-1952.8894,258.8604,40.7082,51.7172,17,1); //
+	AddStaticVehicle(411,-1949.8689,266.5759,40.7776,216.4882,112,1); //
+	AddStaticVehicle(429,-1988.0347,305.4242,34.8553,87.0725,2,1); //
+	AddStaticVehicle(559,-1657.6660,1213.6195,6.9062,282.6953,13,8); //
+	AddStaticVehicle(560,-1658.3722,1213.2236,13.3806,37.9052,52,39); //
+	AddStaticVehicle(558,-1660.8994,1210.7589,20.7875,317.6098,36,1); //
+	AddStaticVehicle(550,-1645.2401,1303.9883,6.8482,133.6013,7,7); //
+	AddStaticVehicle(460,-1333.1960,903.7660,1.5568,0.5095,46,32); //
+	
+	// 25/4 UPDATE
+	AddStaticVehicle(411,113.8611,1068.6182,13.3395,177.1330,116,1); //
+	AddStaticVehicle(429,159.5199,1185.1160,14.7324,85.5769,1,2); //
+	AddStaticVehicle(411,612.4678,1694.4126,6.7192,302.5539,75,1); //
+	AddStaticVehicle(522,661.7609,1720.9894,6.5641,19.1231,6,25); //
+	AddStaticVehicle(522,660.0554,1719.1187,6.5642,12.7699,8,82); //
+	AddStaticVehicle(567,711.4207,1947.5208,5.4056,179.3810,90,96); //
+	AddStaticVehicle(567,1031.8435,1920.3726,11.3369,89.4978,97,96); //
+	AddStaticVehicle(567,1112.3754,1747.8737,10.6923,270.9278,102,114); //
+	AddStaticVehicle(567,1641.6802,1299.2113,10.6869,271.4891,97,96); //
+	AddStaticVehicle(567,2135.8757,1408.4512,10.6867,180.4562,90,96); //
+	AddStaticVehicle(567,2262.2639,1469.2202,14.9177,91.1919,99,81); //
+	AddStaticVehicle(567,2461.7380,1345.5385,10.6975,0.9317,114,1); //
+	AddStaticVehicle(567,2804.4365,1332.5348,10.6283,271.7682,88,64); //
+	AddStaticVehicle(560,2805.1685,1361.4004,10.4548,270.2340,17,1); //
+	AddStaticVehicle(506,2853.5378,1361.4677,10.5149,269.6648,7,7); //
+	AddStaticVehicle(567,2633.9832,2205.7061,10.6868,180.0076,93,64); //
+	AddStaticVehicle(567,2119.9751,2049.3127,10.5423,180.1963,93,64); //
+	AddStaticVehicle(567,2785.0261,-1835.0374,9.6874,226.9852,93,64); //
+	AddStaticVehicle(567,2787.8975,-1876.2583,9.6966,0.5804,99,81); //
+	AddStaticVehicle(411,2771.2993,-1841.5620,9.4870,20.7678,116,1); //
+	AddStaticVehicle(420,1713.9319,1467.8354,10.5219,342.8006,6,1); // taxi
+
+	AddStaticPickup(371, 15, 1710.3359,1614.3585,10.1191); //para
+	AddStaticPickup(371, 15, 1964.4523,1917.0341,130.9375); //para
+	AddStaticPickup(371, 15, 2055.7258,2395.8589,150.4766); //para
+	AddStaticPickup(371, 15, 2265.0120,1672.3837,94.9219); //para
+	AddStaticPickup(371, 15, 2265.9739,1623.4060,94.9219); //para
+
+	SetTimer("MoneyGrubScoreUpdate", 1000, 1);
+	//SetTimer("GameModeExitFunc", gRoundTime, 0);
+
+	return 1;
+}
+
+
+
+public SendPlayerFormattedText(playerid, const str[], define)
+{
+	new tmpbuf[256];
+	format(tmpbuf, sizeof(tmpbuf), str, define);
+	SendClientMessage(playerid, 0xFF004040, tmpbuf);
+}
+
+public SendAllFormattedText(playerid, const str[], define)
+{
+	new tmpbuf[256];
+	format(tmpbuf, sizeof(tmpbuf), str, define);
+	SendClientMessageToAll(0xFFFF00AA, tmpbuf);
+}
+
+strtok(const string[], &index)
+{
+	new length = strlen(string);
+	while ((index < length) && (string[index] <= ' '))
+	{
+		index++;
+	}
+
+	new offset = index;
+	new result[20];
+	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
+	{
+		result[index - offset] = string[index];
+		index++;
+	}
+	result[index - offset] = EOS;
+	return result;
+}
+
+
+
+
+
+

BIN
samp03/gamemodes/rivershell.amx


+ 335 - 0
samp03/gamemodes/rivershell.pwn

@@ -0,0 +1,335 @@
+//---------------------------------------------------------
+//
+// Rivershell by Kye - 2006
+//
+// Updated 2009 for SA-MP 0.3
+//
+//---------------------------------------------------------
+
+#include <a_samp>
+#include <core>
+#include <float>
+
+// Global stuff and defines for our gamemode.
+
+static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
+
+#define OBJECTIVE_VEHICLE_GREEN 2
+#define OBJECTIVE_VEHICLE_BLUE 1
+#define TEAM_GREEN 1
+#define TEAM_BLUE 2
+#define OBJECTIVE_COLOR 0xE2C063FF
+#define TEAM_GREEN_COLOR 0x77CC77FF
+#define TEAM_BLUE_COLOR 0x7777DDFF
+#define CAPS_TO_WIN 3
+
+new gObjectiveReached = 0; // Stops the winner logic reentering itself.
+new gObjectiveGreenPlayer=(-1); // Tracks which green player has the vehicle.
+new gObjectiveBluePlayer=(-1); // Tracks which blue player has the vehicle.
+
+// number of times the vehicle has been captured by each team
+new gGreenTimesCapped=0;
+new gBlueTimesCapped=0;
+
+// forward declarations for the PAWN compiler (not really needed, but there for the sake of clarity)
+forward SetPlayerToTeamColor(playerid);
+forward SetupPlayerForClassSelection(playerid);
+forward SetPlayerTeamFromClass(playerid,classid);
+forward ExitTheGameMode();
+
+//---------------------------------------------------------
+
+main()
+{
+	print("\n----------------------------------");
+	print("  Rivershell by Kye 2006\n");
+	print("----------------------------------\n");
+}
+//---------------------------------------------------------
+
+public SetPlayerToTeamColor(playerid)
+{
+	if(gTeam[playerid] == TEAM_GREEN) {
+		SetPlayerColor(playerid,TEAM_GREEN_COLOR); // green
+	} else if(gTeam[playerid] == TEAM_BLUE) {
+	    SetPlayerColor(playerid,TEAM_BLUE_COLOR); // blue
+	}
+}
+//---------------------------------------------------------
+
+public SetupPlayerForClassSelection(playerid)
+{
+	// Set the player's orientation when they're selecting a class.
+	SetPlayerPos(playerid,1984.4445,157.9501,55.9384);
+    SetPlayerCameraPos(playerid,1984.4445,160.9501,55.9384);
+	SetPlayerCameraLookAt(playerid,1984.4445,157.9501,55.9384);
+	SetPlayerFacingAngle(playerid,0.0);
+}
+
+//---------------------------------------------------------
+
+public SetPlayerTeamFromClass(playerid,classid)
+{
+	// Set their team number based on the class they selected.
+	if(classid == 0 || classid == 1) {
+		gTeam[playerid] = TEAM_GREEN;
+	} else if(classid == 2 || classid == 3) {
+	    gTeam[playerid] = TEAM_BLUE;
+	}
+}
+
+//---------------------------------------------------------
+
+public ExitTheGameMode()
+{
+    PlaySoundForAll(1186, 0.0, 0.0, 0.0); // Stops the music
+	//printf("Exiting Game Mode");
+    GameModeExit();
+}
+
+//---------------------------------------------------------
+
+public OnPlayerStateChange(playerid, newstate, oldstate)
+{
+	new vehicleid;
+
+	if(newstate == PLAYER_STATE_DRIVER)
+	{
+		vehicleid = GetPlayerVehicleID(playerid);
+		
+		if(gTeam[playerid] == TEAM_GREEN && vehicleid == OBJECTIVE_VEHICLE_GREEN)
+		{ // It's the objective vehicle
+		    SetPlayerColor(playerid,OBJECTIVE_COLOR);
+		    GameTextForPlayer(playerid,"~w~Take the ~y~boat ~w~back to the ~r~spawn!",3000,5);
+		    SetPlayerCheckpoint(playerid,1982.6150,-220.6680,-0.2432,7.0);
+		    gObjectiveGreenPlayer = playerid;
+		}
+		
+		if(gTeam[playerid] == TEAM_BLUE && vehicleid == OBJECTIVE_VEHICLE_BLUE)
+		{ // It's the objective vehicle
+		    SetPlayerColor(playerid,OBJECTIVE_COLOR);
+		    GameTextForPlayer(playerid,"~w~Take the ~y~boat ~w~back to the ~r~spawn!",3000,5);
+		    SetPlayerCheckpoint(playerid,2328.2935,531.8324,0.0094,7.0);
+		    gObjectiveBluePlayer = playerid;
+		}
+	}
+	else if(newstate == PLAYER_STATE_ONFOOT)
+	{
+		if(playerid == gObjectiveGreenPlayer) {
+		    gObjectiveGreenPlayer = (-1);
+		    SetPlayerToTeamColor(playerid);
+	  		DisablePlayerCheckpoint(playerid);
+		}
+		
+		if(playerid == gObjectiveBluePlayer) {
+		    gObjectiveBluePlayer = (-1);
+		    SetPlayerToTeamColor(playerid);
+		    DisablePlayerCheckpoint(playerid);
+		}
+	}
+
+    return 1;
+}
+
+//---------------------------------------------------------
+
+public OnGameModeInit()
+{
+	SetGameModeText("Rivershell");
+	
+	ShowPlayerMarkers(1);
+	ShowNameTags(1);
+	SetWorldTime(17);
+
+	// GREEN CLASSES
+	AddPlayerClass(162,1980.0054,-266.6487,2.9653,348.9788,0,0,31,400,29,400);
+	AddPlayerClass(157,1980.0054,-266.6487,2.9653,348.9788,0,0,31,400,29,400);
+
+ 	// BLUE CLASSES
+	AddPlayerClass(154,2359.2703,540.5911,1.7969,180.6476,0,0,31,400,29,400);
+	AddPlayerClass(138,2294.0413,541.8565,1.7944,188.6283,0,0,31,400,29,400);
+
+	// OBJECTIVE VEHICLES
+    AddStaticVehicle(453,2057.0154,-236.5598,-0.2621,359.4377,114,1); // gr reefer
+	AddStaticVehicle(453,2381.9685,532.4496,0.2574,183.2029,79,7); // b reefer
+
+    // GREEN VEHICLES
+    AddStaticVehicle(473,2023.5109,-246.4161,-0.1514,351.0038,114,1); // gr dhin
+    AddStaticVehicle(473,1949.2490,-259.5398,-0.2794,13.3247,114,1); // gr ding2fix
+	AddStaticVehicle(473,2003.7256,-248.4939,-0.2243,5.1752,114,1); // gr ding
+	AddStaticVehicle(473,1982.4832,-252.4811,-0.3006,358.3696,114,1); // gr ding
+	AddStaticVehicle(473,1927.7894,-249.3088,-0.2893,320.7715,114,1); // gr ding
+	AddStaticVehicle(473,1907.6969,-230.4202,-0.2585,306.0136,114,1); // gr ding
+	AddStaticVehicle(487,1913.0819,-376.2350,21.4819,350.9412,114,1); // gr mav
+
+	// BLUE VEHICLES
+	AddStaticVehicle(473,2289.7571,518.4412,-0.2167,178.8301,79,7); // b ding
+	AddStaticVehicle(473,2294.3599,519.1021,-0.1391,177.1416,79,7); // b ding
+	AddStaticVehicle(473,2298.8411,518.4229,-0.2333,181.1228,79,7); // b ding
+	AddStaticVehicle(473,2369.9839,519.0364,-0.3190,187.9187,79,7); // b ding
+	AddStaticVehicle(473,2359.9417,519.1055,-0.2271,183.8014,79,7); // b ding
+	AddStaticVehicle(473,2351.4617,519.1046,-0.1172,182.8623,79,7); // b ding
+	AddStaticVehicle(487,2324.4399,573.1667,7.9578,177.6699,79,7); // b mav
+
+   return 1;
+}
+
+//---------------------------------------------------------
+
+public OnPlayerConnect(playerid)
+{
+	SetPlayerColor(playerid,0x888888FF);
+	GameTextForPlayer(playerid,"~r~SA-MP:~w~Rivershell",2000,5);
+	return 1;
+}
+
+//---------------------------------------------------------
+
+public OnPlayerRequestClass(playerid, classid)
+{
+	SetupPlayerForClassSelection(playerid);
+	SetPlayerTeamFromClass(playerid,classid);
+	
+	if(classid == 0 || classid == 1) {
+		GameTextForPlayer(playerid,"~g~GREEN ~w~TEAM",1000,5);
+	} else if(classid == 2 || classid == 3) {
+	    GameTextForPlayer(playerid,"~b~BLUE ~w~TEAM",1000,5);
+	}
+	
+	return 1;
+}
+
+//---------------------------------------------------------
+
+public OnPlayerSpawn(playerid)
+{
+	SetPlayerToTeamColor(playerid);
+
+	if(gTeam[playerid] == TEAM_GREEN) {
+	    SetPlayerWorldBounds(playerid,2444.4185,1687.5696,631.2963,-454.9898);
+	    GameTextForPlayer(playerid,
+		   "Defend the ~g~GREEN ~w~team's ~y~Reefer~n~~w~Capture the ~b~BLUE ~w~team's ~y~Reefer",
+		   6000,5);
+	}
+	else if(gTeam[playerid] == TEAM_BLUE) {
+		SetPlayerWorldBounds(playerid,2444.4185,1687.5696,631.2963,-454.9898);
+	    GameTextForPlayer(playerid,
+		   "Defend the ~b~BLUE ~w~team's ~y~Reefer~n~~w~Capture the ~g~GREEN ~w~team's ~y~Reefer",
+		   6000,5);
+	}
+
+	return 1;
+}
+
+//---------------------------------------------------------
+
+public OnPlayerEnterCheckpoint(playerid)
+{
+ 	new playervehicleid = GetPlayerVehicleID(playerid);
+ 	
+ 	if(gObjectiveReached) return;
+ 	
+	if(playervehicleid == OBJECTIVE_VEHICLE_GREEN && gTeam[playerid] == TEAM_GREEN)
+	{   // Green OBJECTIVE REACHED.
+	    gGreenTimesCapped++;
+	    SetPlayerScore(playerid,GetPlayerScore(playerid)+5);
+	    
+	    if(gGreenTimesCapped==CAPS_TO_WIN) {
+	        GameTextForAll("~g~GREEN ~w~team wins!",3000,5);
+			gObjectiveReached = 1;	PlaySoundForAll(1185, 0.0, 0.0, 0.0);
+ 			SetTimer("ExitTheGameMode", 6000, 0); // Set up a timer to exit this mode.
+		} else {
+		    GameTextForAll("~g~GREEN ~w~team captured the ~y~boat!",3000,5);
+		    SetVehicleToRespawn(OBJECTIVE_VEHICLE_GREEN);
+		}
+	    return;
+	}
+	else if(playervehicleid == OBJECTIVE_VEHICLE_BLUE && gTeam[playerid] == TEAM_BLUE)
+	{   // Blue OBJECTIVE REACHED.
+	    gBlueTimesCapped++;
+	    SetPlayerScore(playerid,GetPlayerScore(playerid)+5);
+	    
+	    if(gBlueTimesCapped==CAPS_TO_WIN) {
+	        GameTextForAll("~b~BLUE ~w~team wins!",3000,5);
+	        gObjectiveReached = 1;	PlaySoundForAll(1185, 0.0, 0.0, 0.0);
+			SetTimer("ExitTheGameMode", 6000, 0); // Set up a timer to exit this mode.
+		} else {
+		    GameTextForAll("~b~BLUE ~w~team captured the ~y~boat!",3000,5);
+		    SetVehicleToRespawn(OBJECTIVE_VEHICLE_BLUE);
+		}
+	    return;
+	}
+}
+
+//---------------------------------------------------------
+
+public OnPlayerDeath(playerid, killerid, reason)
+{
+	if(killerid == INVALID_PLAYER_ID) {
+        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
+	} else {
+        if(gTeam[killerid] != gTeam[playerid]) {
+	    	// Valid kill
+	    	SendDeathMessage(killerid,playerid,reason);
+			SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
+     	}
+		else {
+		    // Team kill
+		    SendDeathMessage(killerid,playerid,reason);
+		}
+	}
+ 	return 1;
+}
+
+
+//---------------------------------
+
+public OnVehicleStreamIn(vehicleid, forplayerid)
+{
+	// Note for SA-MP 0.3:
+	// As the vehicle streams in, player team dependant params are applied. They can't be
+	// applied to vehicles that don't exist in the player's world.
+	
+    if(vehicleid == OBJECTIVE_VEHICLE_BLUE) {
+        if(gTeam[forplayerid] == TEAM_GREEN) {
+			SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_BLUE,forplayerid,1,1); // objective; locked
+		}
+		else if(gTeam[forplayerid] == TEAM_BLUE) {
+		    SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_BLUE,forplayerid,1,0); // objective; unlocked
+		}
+	}
+	else if(vehicleid == OBJECTIVE_VEHICLE_GREEN) {
+        if(gTeam[forplayerid] == TEAM_BLUE) {
+			SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_GREEN,forplayerid,1,1); // objective; locked
+		}
+		else if(gTeam[forplayerid] == TEAM_GREEN) {
+		    SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_GREEN,forplayerid,1,0); // objective; unlocked
+		}
+	}
+	
+	return 1;
+	//printf("GameMode: VehicleStreamIn(%d,%d)",vehicleid,forplayerid);
+}
+
+//---------------------------------
+
+public OnVehicleStreamOut(vehicleid, forplayerid)
+{
+	return 1;
+	//printf("GameMode: VehicleStreamOut(%d,%d)",vehicleid,forplayerid);
+}
+
+//---------------------------------
+
+PlaySoundForAll(soundid, Float:x, Float:y, Float:z)
+{
+	for (new i=0; i<MAX_PLAYERS; i++)
+	{
+	    if (IsPlayerConnected(i))
+	    {
+		    PlayerPlaySound(i, soundid, x, y, z);
+	    }
+	}
+}
+
+//---------------------------------

BIN
samp03/gamemodes/roleplay.amx


BIN
samp03/gamemodes/timertest.amx


+ 31 - 0
samp03/gamemodes/timertest.pwn

@@ -0,0 +1,31 @@
+#include <a_samp>
+
+forward OneSecTimer();
+
+main()
+{
+	print("\n----------------------------------");
+	print("  This is a blank GameModeScript");
+	print("----------------------------------\n");
+	
+	//printf("GetVehicleComponentType %u",GetVehicleComponentType(1100));
+	
+}
+
+public OnGameModeInit()
+{
+	// Set timer of 1 second.
+	SetTimer("OneSecTimer", 1000, 1);
+	print("GameModeInit()");
+	SetGameModeText("Timer Test");
+	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
+	return 1;
+}
+
+public OneSecTimer() {
+	new sText[256];
+	format(sText,sizeof(sText),"GetTickCount = %d",GetTickCount());
+	print(sText);
+	SendClientMessageToAll(0xFF0000, sText);
+}
+

+ 157 - 0
samp03/include/gl_common.inc

@@ -0,0 +1,157 @@
+//----------------------------------------------------------
+//
+// GRAND LARCENY common functions include.
+//
+//----------------------------------------------------------
+
+stock LoadStaticVehiclesFromFile(const filename[])
+{
+	new File:file_ptr;
+	new line[256];
+	new var_from_line[64];
+	new vehicletype;
+	new Float:SpawnX;
+	new Float:SpawnY;
+	new Float:SpawnZ;
+	new Float:SpawnRot;
+    new Color1, Color2;
+	new index;
+	new vehicles_loaded;
+
+	file_ptr = fopen(filename,filemode:io_read);
+	if(!file_ptr) return 0;
+
+	vehicles_loaded = 0;
+
+	while(fread(file_ptr,line,256) > 0)
+	{
+	    index = 0;
+
+	    // Read type
+  		index = token_by_delim(line,var_from_line,',',index);
+  		if(index == (-1)) continue;
+  		vehicletype = strval(var_from_line);
+   		if(vehicletype < 400 || vehicletype > 611) continue;
+
+  		// Read X, Y, Z, Rotation
+  		index = token_by_delim(line,var_from_line,',',index+1);
+  		if(index == (-1)) continue;
+  		SpawnX = floatstr(var_from_line);
+
+  		index = token_by_delim(line,var_from_line,',',index+1);
+  		if(index == (-1)) continue;
+  		SpawnY = floatstr(var_from_line);
+
+  		index = token_by_delim(line,var_from_line,',',index+1);
+  		if(index == (-1)) continue;
+  		SpawnZ = floatstr(var_from_line);
+
+  		index = token_by_delim(line,var_from_line,',',index+1);
+  		if(index == (-1)) continue;
+  		SpawnRot = floatstr(var_from_line);
+
+  		// Read Color1, Color2
+  		index = token_by_delim(line,var_from_line,',',index+1);
+  		if(index == (-1)) continue;
+  		Color1 = strval(var_from_line);
+
+  		index = token_by_delim(line,var_from_line,';',index+1);
+  		Color2 = strval(var_from_line);
+
+  		//printf("%d,%d,%f,%f,%f,%f,%d,%d",total_vehicles_from_files+vehicles_loaded+1,vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);
+
+		AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,(30*60)); // respawn 30 minutes
+		vehicles_loaded++;
+	}
+
+	fclose(file_ptr);
+	printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
+	return vehicles_loaded;
+}
+
+//----------------------------------------------------------
+
+stock strtok(const string[], &index)
+{
+	new length = strlen(string);
+	while ((index < length) && (string[index] <= ' '))
+	{
+		index++;
+	}
+
+	new offset = index;
+	new result[20];
+	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
+	{
+		result[index - offset] = string[index];
+		index++;
+	}
+	result[index - offset] = EOS;
+	return result;
+}
+
+//------------------------------------------------
+
+stock strrest(const string[], &index)
+{
+	new length = strlen(string);
+	while ((index < length) && (string[index] <= ' '))
+	{
+		index++;
+	}
+	new offset = index;
+	new result[128];
+	while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
+	{
+		result[index - offset] = string[index];
+		index++;
+	}
+	result[index - offset] = EOS;
+	return result;
+}
+
+//----------------------------------------------------------
+// Tokenise by a delimiter
+// Return string and index of the end determined by the
+// provided delimiter in delim
+
+stock token_by_delim(const string[], return_str[], delim, start_index)
+{
+	new x=0;
+	while(string[start_index] != EOS && string[start_index] != delim) {
+	    return_str[x] = string[start_index];
+	    x++;
+	    start_index++;
+	}
+	return_str[x] = EOS;
+	if(string[start_index] == EOS) start_index = (-1);
+	return start_index;
+}
+
+//----------------------------------------------------------
+
+stock isNumeric(const string[])
+{
+  new length=strlen(string);
+  if (length==0) return false;
+  for (new i = 0; i < length; i++)
+    {
+      if (
+            (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
+             || (string[i]=='-' && i!=0)                                             // A '-' but not at first.
+             || (string[i]=='+' && i!=0)                                             // A '+' but not at first.
+         ) return false;
+    }
+  if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
+  return true;
+}
+
+//----------------------------------------------------------
+
+stock IsKeyJustDown(key, newkeys, oldkeys)
+{
+	if((newkeys & key) && !(oldkeys & key)) return 1;
+	return 0;
+}
+
+//----------------------------------------------------------

+ 138 - 0
samp03/include/gl_spawns.inc

@@ -0,0 +1,138 @@
+// Some player spawn points around the 3 main cities of San Andreas.
+// Thanks to krisk, Popz and Woet.
+
+// Police dept spawns LS/SF/LV.
+new Float:gPoliceSpawns[3][4] = {
+{1568.2250,-1693.5483,5.8906,177.0983},
+{-1604.8442,732.9442,-5.2344,37.6041},
+{2343.4553,2455.5994,14.9688,96.5022}
+};
+
+// Medical dept spawns LS/SF/LV.
+new Float:gMedicalSpawns[3][4] = {
+{1568.2250,-1693.5483,5.8906,177.0983},
+{-1604.8442,732.9442,-5.2344,37.6041},
+{1609.5922,1820.9641,10.8280,348.1614}
+};
+
+// Army spawns LS/SF/LV.
+new Float:gArmySpawns[3][4] = {
+{2786.2183,-2436.7859,13.6340,82.3043},
+{-1308.4493,504.9661,11.1953,132.5},
+{272.6040,1989.7307,17.6406,268.3605}
+};
+
+new Float:gRandomSpawns_LosSantos[][4] = {
+{1751.1097,-2106.4529,13.5469,183.1979}, // El-Corona - Outside random house
+{2652.6418,-1989.9175,13.9988,182.7107}, // Random house in willowfield - near playa de seville and stadium
+{2489.5225,-1957.9258,13.5881,2.3440}, // Hotel in willowfield - near cluckin bell
+{2689.5203,-1695.9354,10.0517,39.5312}, // Outside stadium - lots of cars
+{2770.5393,-1628.3069,12.1775,4.9637}, // South in east beach - north of stadium - carparks nearby
+{2807.9282,-1176.8883,25.3805,173.6018}, // North in east beach - near apartments
+{2552.5417,-958.0850,82.6345,280.2542}, // Random house north of Las Colinas
+{2232.1309,-1159.5679,25.8906,103.2939}, // Jefferson motel
+{2388.1003,-1279.8933,25.1291,94.3321}, // House south of pig pen
+{2481.1885,-1536.7186,24.1467,273.4944}, // East LS - near clucking bell and car wash
+{2495.0720,-1687.5278,13.5150,359.6696}, // Outside CJ's house - lots of cars nearby
+{2306.8252,-1675.4340,13.9221,2.6271}, // House in ganton - lots of cars nearby
+{2191.8403,-1455.8251,25.5391,267.9925}, // House in south jefferson - lots of cars nearby
+{1830.1359,-1092.1849,23.8656,94.0113}, // Mulholland intersection carpark
+{2015.3630,-1717.2535,13.5547,93.3655}, // Idlewood house
+{1654.7091,-1656.8516,22.5156,177.9729}, // Right next to PD
+{1219.0851,-1812.8058,16.5938,190.0045}, // Conference Center
+{1508.6849,-1059.0846,25.0625,1.8058}, // Across the street of BANK - lots of cars in intersection carpark
+{1421.0819,-885.3383,50.6531,3.6516}, // Outside house in vinewood
+{1133.8237,-1272.1558,13.5469,192.4113}, // Near hospital
+{1235.2196,-1608.6111,13.5469,181.2655}, // Backalley west of mainstreet
+{590.4648,-1252.2269,18.2116,25.0473}, // Outside "BAnk of San Andreas"
+{842.5260,-1007.7679,28.4185,213.9953}, // North of Graveyard
+{911.9332,-1232.6490,16.9766,5.2999}, // LS Film Studio
+{477.6021,-1496.6207,20.4345,266.9252}, // Rodeo Place
+{255.4621,-1366.3256,53.1094,312.0852}, // Outside propery in richman
+{281.5446,-1261.4562,73.9319,305.0017}, // Another richman property
+{790.1918,-839.8533,60.6328,191.9514}, // Mulholland house
+{1299.1859,-801.4249,84.1406,269.5274}, // Maddoggs
+{1240.3170,-2036.6886,59.9575,276.4659}, // Verdant Bluffs
+{2215.5181,-2627.8174,13.5469,273.7786}, // Ocean docks 1
+{2509.4346,-2637.6543,13.6453,358.3565} // Ocean Docks spawn 2
+};
+
+new Float:gRandomSpawns_LasVenturas[][4] = {
+{1435.8024,2662.3647,11.3926,1.1650}, //  Northern train station
+{1457.4762,2773.4868,10.8203,272.2754}, //  Northern golf club
+{1739.6390,2803.0569,14.2735,285.3929}, //  Northern housing estate 1
+{1870.3096,2785.2471,14.2734,42.3102}, //  Northern housing estate 2
+{1959.7142,2754.6863,10.8203,181.4731}, //  Northern house 1
+{2314.2556,2759.4504,10.8203,93.2711}, //  Northern industrial estate 1
+{2216.5674,2715.0334,10.8130,267.6540}, //  Northern industrial estate 2
+{2101.4192,2678.7874,10.8130,92.0607}, //  Northern near railway line
+{1951.1090,2660.3877,10.8203,180.8461}, //  Northern house 2
+{1666.6949,2604.9861,10.8203,179.8495}, //  Northern house 3
+{2808.3367,2421.5107,11.0625,136.2060}, //  Northern shopping centre
+{2633.3203,2349.7061,10.6719,178.7175}, //  V-Rock
+{2606.6348,2161.7490,10.8203,88.7508}, //  South V-Rock
+{2616.5286,2100.6226,10.8158,177.7834}, //  North Ammunation 1
+{2491.8816,2397.9370,10.8203,266.6003}, //  North carpark 1
+{2531.7891,2530.3223,21.8750,91.6686}, //  North carpark 2
+{2340.6677,2530.4324,10.8203,177.8630}, //  North Pizza Stack
+{2097.6855,2491.3313,14.8390,181.8117}, //  Emerald Isle
+{1893.1000,2423.2412,11.1782,269.4385}, //  Souvenir shop
+{1698.9330,2241.8320,10.8203,357.8584}, //  Northern casino
+{1479.4559,2249.0769,11.0234,306.3790}, //  Baseball stadium 1
+{1298.1548,2083.4016,10.8127,256.7034}, //  Baseball stadium 2
+{1117.8785,2304.1514,10.8203,81.5490}, //  North carparks
+{1108.9878,1705.8639,10.8203,0.6785}, //  Dirtring racing 1
+{1423.9780,1034.4188,10.8203,90.9590}, //  Sumo
+{1537.4377,752.0641,11.0234,271.6893}, //  Church
+{1917.9590,702.6984,11.1328,359.2682}, //  Southern housing estate
+{2089.4785,658.0414,11.2707,357.3572}, //  Southern house 1
+{2489.8286,928.3251,10.8280,67.2245}, //  Wedding chapel
+{2697.4717,856.4916,9.8360,267.0983}, //  Southern construction site
+{2845.6104,1288.1444,11.3906,3.6506}, //  Southern train station
+{2437.9370,1293.1442,10.8203,86.3830}, //  Wedding chapel (near Pyramid)
+{2299.5430,1451.4177,10.8203,269.1287}, //  Carpark (near Pyramid)
+{2214.3008,2041.9165,10.8203,268.7626}, //  Central parking lot
+{2005.9174,2152.0835,10.8203,270.1372}, //  Central motel
+{2222.1042,1837.4220,10.8203,88.6461}, //  Clowns Pocket
+{2025.6753,1916.4363,12.3382,272.5852}, //  The Visage
+{2087.9902,1516.5336,10.8203,48.9300}, //  Royal Casino
+{2172.1624,1398.7496,11.0625,91.3783}, //  Auto Bahn
+{2139.1841,987.7975,10.8203,0.2315}, //  Come-a-lot
+{1860.9672,1030.2910,10.8203,271.6988}, //  Behind 4 Dragons
+{1673.2345,1316.1067,10.8203,177.7294}, //  Airport carpark
+{1412.6187,2000.0596,14.7396,271.3568} //  South baseball stadium houses
+};
+
+new Float:gRandomSpawns_SanFierro[][4] = {
+{-2723.4639,-314.8138,7.1839,43.5562},  // golf course spawn
+{-2694.5344,64.5550,4.3359,95.0190},  // in front of a house
+{-2458.2000,134.5419,35.1719,303.9446},  // hotel
+{-2796.6589,219.5733,7.1875,88.8288},  // house
+{-2706.5261,397.7129,4.3672,179.8611},  // park
+{-2866.7683,691.9363,23.4989,286.3060},  // house
+{-2764.9543,785.6434,52.7813,357.6817},  // donut shop
+{-2660.9402,883.2115,79.7738,357.4440},  // house
+{-2861.0796,1047.7109,33.6068,188.2750}, //  parking lot
+{-2629.2009,1383.1367,7.1833,179.7006},  // parking lot at the bridge
+{-2079.6802,1430.0189,7.1016,177.6486},  // pier
+{-1660.2294,1382.6698,9.8047,136.2952}, //  pier 69
+{-1674.1964,430.3246,7.1797,226.1357},  // gas station]
+{-1954.9982,141.8080,27.1747,277.7342},  // train station
+{-1956.1447,287.1091,35.4688,90.4465},  // car shop
+{-1888.1117,615.7245,35.1719,128.4498},  // random
+{-1922.5566,886.8939,35.3359,272.1293},  // random
+{-1983.3458,1117.0645,53.1243,271.2390},  // church
+{-2417.6458,970.1491,45.2969,269.3676},  // gas station
+{-2108.0171,902.8030,76.5792,5.7139},  // house
+{-2097.5664,658.0771,52.3672,270.4487},  // random
+{-2263.6650,393.7423,34.7708,136.4152},  // random
+{-2287.5027,149.1875,35.3125,266.3989},  // baseball parking lot
+{-2039.3571,-97.7205,35.1641,7.4744},  // driving school
+{-1867.5022,-141.9203,11.8984,22.4499},  // factory
+{-1537.8992,116.0441,17.3226,120.8537},  // docks ship
+{-1708.4763,7.0187,3.5489,319.3260},  // docks hangar
+{-1427.0858,-288.9430,14.1484,137.0812},  // airport
+{-2173.0654,-392.7444,35.3359,237.0159},  // stadium
+{-2320.5286,-180.3870,35.3135,179.6980},  // burger shot
+{-2930.0049,487.2518,4.9141,3.8258}  // harbor
+};

BIN
samp03/log-core.so


BIN
samp03/log-core2.so


+ 1 - 0
samp03/logs/errors.log

@@ -0,0 +1 @@
+[16/08/2022 16:34:44] [plugins/mysql] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value

+ 8 - 0
samp03/logs/log-core.log

@@ -0,0 +1,8 @@
+[14/08/2022 18:32:53] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[14/08/2022 18:41:49] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[14/08/2022 18:42:39] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[14/08/2022 18:46:48] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[14/08/2022 19:26:13] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[15/08/2022 15:16:09] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[16/08/2022 10:45:36] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)
+[16/08/2022 10:47:14] [ERROR] signal 2 (SIGINT) catched; shutting log-core down (errno: 0, signal code: 128, exit status: 0)

+ 197 - 0
samp03/logs/plugins/mysql.log

@@ -0,0 +1,197 @@
+[14/08/2022 18:48:35] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '92.53.35.228', 'F8CF9F4E9DECC554C89CDD05E4FA9C4D48FD08C5')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:25:39] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Tyrant_Test', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:29:28] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:45:22] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:46:25] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Nasty', '877B642F264DFBDED820C600539511476314E26F27DC72935D5B1CA018DF8EA622149937DDBB8FD60CA8B6107B7A22288BB803687D841DB3AABC745E11CA90B9', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:46:41] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Wavy', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:46:48] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('cal', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:46:56] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Snyder', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:04] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Velasco', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:12] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('JustKid', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:20] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('suso', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:28] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Salsa', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:35] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('Fawksi', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:49] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('RICO', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:53] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('hetun', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:47:57] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('figures', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:48:05] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('greg', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:48:15] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz) VALUES ('MobbinThru', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 0)": Field 'Email' doesn't have a default value
+[14/08/2022 19:53:06] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:54:36] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('SnyderTheClown', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:55:23] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Synder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:56:00] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:57:16] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('suso', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:57:31] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Wavy', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:58:47] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Tyrant', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 19:59:46] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Justkid', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[14/08/2022 20:43:52] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('suso', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[14/08/2022 20:44:45] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pritix', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[15/08/2022 15:50:38] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[15/08/2022 15:51:37] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Wavy', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 1337)": Field 'Email' doesn't have a default value
+[15/08/2022 15:51:52] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('cal', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 15:52:02] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('nightfire', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 15:52:11] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Snyder', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 15:52:30] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('RICO', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 1)": Field 'Email' doesn't have a default value
+[15/08/2022 15:52:35] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('figures', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 1)": Field 'Email' doesn't have a default value
+[15/08/2022 15:52:51] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('MobbinThru', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 1)": Field 'Email' doesn't have a default value
+[15/08/2022 15:53:00] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('JustKid', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 15:53:07] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Fawksi', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 15:53:11] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('hetun', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 1)": Field 'Email' doesn't have a default value
+[15/08/2022 15:53:20] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Velasco', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 3)": Field 'Email' doesn't have a default value
+[15/08/2022 15:57:26] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('SnyderTheClown', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 15:57:55] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 15:59:09] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snydertheclown', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:01:17] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Synder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:01:53] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:02:03] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Snyder', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'Email' doesn't have a default value
+[15/08/2022 16:02:10] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Violet_Mallard', '86.93.177.95', '88E4E4989ECD0D89884D858DF94EA4CE0CE4E8AD')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:02:33] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:02:37] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('ViolentViolet', '86.93.177.95', '88E4E4989ECD0D89884D858DF94EA4CE0CE4E8AD')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:03:07] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('snydertheclown', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:10:35] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix_Test', '92.98.109.109', 'DAE0DE99F544EE9C980488AAA5C4DC9EC80EC44')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:42:02] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Velasco', '78.92.211.32', '55EE8DA8E80CD0A9C848A9CCFF88CD8CA8F00DED')": Field 'char_name' doesn't have a default value
+[15/08/2022 16:44:27] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Velasco', '78.92.211.32', '55EE8DA8E80CD0A9C848A9CCFF88CD8CA8F00DED')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:08:53] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:10:06] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:10:39] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:13:00] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Snyder', '0F126F09B0EDAD5EB6311D2FC89B76E99867140DDE457BEBD1478454049BC1BA64B1984926562BFA21B7BC823F8F145A80873A0DFF73FF25E99DC17B0489DE6F', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:13:33] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Wavy', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:13:41] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('cal', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:13:50] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('nightfire', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:14:04] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('MobbingThru', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:14:23] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('NoC3TurN', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:14:29] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('RICO', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:14:40] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('figures', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:14:55] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Bullvalene', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:04] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('greg', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:10] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Justkid', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:18] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Mart', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:23] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Fawski', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:33] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Nasty', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:40] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('petar', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:46] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Salsa', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:15:59] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('hetun', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:16:06] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('suso', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:16:18] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Velasco', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:16:25] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('High', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:17:10] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Snyder', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:17:53] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:18:10] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Wavy', '173.33.2.237', '9E940DEDCC484584FD4FEDCE4FD8EEF4CD0ECAD8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:18:43] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('Snyder', 'F63B30E6E20FD929FBC300E5EA98870A0AE667B0E1FEDB5752E72F0AE0703AA654FBC77209CD19839086F235E6C54DEE26E9AA5507BCC90A5AA9C57F97B5949A', 1, 4)": Field 'SecretWord' doesn't have a default value
+[15/08/2022 17:25:44] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('suso', '77.29.108.197', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:26:29] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('tyrant', '77.29.108.197', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:26:42] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Tyrant', '77.29.108.197', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:36:06] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '102.42.212.149', 'DEFE4EA4FD8E848CD549F4A95C94E89CE44590E8')": Field 'char_name' doesn't have a default value
+[15/08/2022 17:40:32] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1540.471313, -851.348389, 64.336060, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 601, 'Unknown, Mulholland Intersection, Los Santos 999', 75000, 0, 'The State', 0, 0, 0, 1, 0, -1, 1)": Field 'items' doesn't have a default value
+[15/08/2022 17:41:20] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1535.761841, -885.283508, 57.657482, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 602, 'Unknown, Mulholland Intersection, Los Santos 999', 75000, 0, 'The State', 0, 0, 0, 1, 0, -1, 2)": Field 'items' doesn't have a default value
+[15/08/2022 17:41:36] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1468.619141, -906.180298, 54.835938, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 603, 'Unknown, Mulholland Intersection, Los Santos 999', 75000, 0, 'The State', 0, 0, 0, 1, 0, -1, 3)": Field 'items' doesn't have a default value
+[15/08/2022 17:42:02] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1421.792603, -886.231201, 50.686333, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 604, 'Unknown, Mulholland, Los Santos 343', 70000, 0, 'The State', 0, 0, 0, 1, 0, -1, 4)": Field 'items' doesn't have a default value
+[15/08/2022 17:44:13] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1411.015503, -920.848267, 38.421875, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 605, 'Unknown, Mulholland, Los Santos 343', 80000, 0, 'The State', 0, 0, 0, 1, 0, -1, 5)": Field 'items' doesn't have a default value
+[15/08/2022 17:44:27] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1440.733521, -926.146851, 39.647667, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 606, 'Unknown, Mulholland, Los Santos 343', 80000, 0, 'The State', 0, 0, 0, 1, 0, -1, 6)": Field 'items' doesn't have a default value
+[15/08/2022 17:45:52] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1315.464966, -897.682190, 39.578125, '24-7', 'The State', 0, 1, 120000, 0, 0, 3)": Field 'biz_items' doesn't have a default value
+[15/08/2022 17:48:40] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1326.282471, -1090.584839, 27.976562, 155.356476, 1409.172119, 1087.307495, 155.356476, 1409.172119, 1087.307495, 607, 'Unknown, Temple, Los Santos 343', 100000, 0, 'The State', 0, 0, 0, 1, 0, -1, 7)": Field 'items' doesn't have a default value
+[15/08/2022 17:49:29] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1325.946045, -1067.738770, 31.554688, 155.356476, 1409.172119, 1087.307495, 155.356476, 1409.172119, 1087.307495, 608, 'Unknown, Temple, Los Santos 343', 100000, 0, 'The State', 0, 0, 0, 1, 0, -1, 8)": Field 'items' doesn't have a default value
+[15/08/2022 17:50:19] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1411.044312, -920.866211, 38.421875, 155.356476, 1409.172119, 1087.307495, 155.356476, 1409.172119, 1087.307495, 605, 'Unknown, Mulholland, Los Santos 343', 100000, 0, 'The State', 0, 0, 0, 1, 0, -1, 5)": Field 'items' doesn't have a default value
+[15/08/2022 17:50:34] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1440.679688, -926.140808, 39.647667, 155.356476, 1409.172119, 1087.307495, 155.356476, 1409.172119, 1087.307495, 606, 'Unknown, Mulholland, Los Santos 343', 100000, 0, 'The State', 0, 0, 0, 1, 0, -1, 6)": Field 'items' doesn't have a default value
+[15/08/2022 17:51:33] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '77.29.108.197', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[15/08/2022 19:52:14] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '77.29.108.197', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[15/08/2022 19:53:02] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('justkid', '2671ED3D864115C3DBD1CF06D9E066DF2FCE83FB845AE3B8FC5E8984C8ED185269768473109F00ADAE126640CD278D8A1493C541DC779E83AF2FCA6391B83D72', 1, 1337)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:16:14] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pixit', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:17:39] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Tixit', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:17:53] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pixit', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:18:05] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pixxit', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:18:20] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Justkid', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:18:42] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Tyrant', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:20:11] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value
+[16/08/2022 01:21:25] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:21:40] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:21:46] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:21:52] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:22:06] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:22:16] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:22:17] [ERROR] error #1364 while executing query "INSERT INTO `factions` (`factionType`) VALUES(0)": Field 'factionLeader' doesn't have a default value
+[16/08/2022 01:22:50] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1732.475342, -2251.008789, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 609, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 9)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:51] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1735.375732, -2252.328857, -1.972275, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 610, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 10)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:51] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1737.769409, -2253.477783, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 611, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 11)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:53] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1736.404175, -2257.248779, -1.943216, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 612, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 12)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:54] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1732.348267, -2257.166260, -2.056030, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 613, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 13)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:55] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1725.908691, -2254.439697, -2.118130, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 614, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 14)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:57] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1716.348389, -2257.253906, -2.084476, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 615, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 15)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:58] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1705.630615, -2257.884033, -2.005157, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 616, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 16)": Field 'items' doesn't have a default value
+[16/08/2022 01:22:59] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1696.001587, -2257.603516, -2.000695, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 617, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 17)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:00] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1687.520264, -2258.460693, -2.126188, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 618, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 18)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:02] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1685.883911, -2255.857666, -2.009400, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 619, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 19)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:03] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1693.684692, -2252.253174, -1.942768, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 620, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 20)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:05] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1701.654663, -2252.266113, -2.003787, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 621, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 21)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:06] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1711.260498, -2252.692139, -2.024520, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 622, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 22)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:08] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1725.065918, -2259.977295, -2.679688, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 623, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 23)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:10] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1729.479492, -2260.930176, -1.983418, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 624, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 24)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:11] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1736.139160, -2259.830078, -2.115999, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 625, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 25)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:12] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1740.234619, -2257.109863, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 626, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 26)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:13] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1739.933716, -2253.756836, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 627, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 27)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:13] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1739.971436, -2253.891846, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 628, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 28)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:14] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1737.728271, -2250.716797, -1.963354, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 629, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 29)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:15] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1733.063477, -2248.989502, -1.977138, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 630, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 30)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:16] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1729.626099, -2251.019775, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 631, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 31)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:17] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1726.407471, -2252.931641, -2.010899, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 632, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 32)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:18] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1724.802124, -2258.975098, -1.950227, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 633, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 33)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:20] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1727.721680, -2268.033936, -1.869408, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 634, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 34)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:21] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1733.704834, -2273.013184, -2.031440, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 635, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 35)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:22] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1733.172974, -2269.384766, -2.672707, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 636, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 36)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:27] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1735.949951, -2286.717285, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 637, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 37)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:30] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1740.639404, -2288.250000, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 638, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 38)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:31] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1737.718140, -2290.478516, -1.940508, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 639, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 39)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:40] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1711.740112, -2250.994873, -2.745805, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 640, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 40)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:41] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1707.638184, -2254.613525, -1.949124, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 641, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 41)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:42] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1699.915283, -2255.019287, -1.955058, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 642, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 42)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:43] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1692.656006, -2255.122314, -1.973497, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 643, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 43)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:45] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1684.258911, -2254.603271, -1.957108, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 644, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 44)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:46] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1678.461182, -2255.807373, -2.037159, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 645, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 45)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:47] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1672.169922, -2257.962158, -1.856199, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 646, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 46)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:48] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1669.180054, -2254.816650, -2.857610, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 647, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 47)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:49] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1659.814209, -2253.928955, -2.846555, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 648, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 48)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:50] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1659.168579, -2257.567139, -2.048318, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 649, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 49)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:51] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1663.783081, -2259.963623, -1.836633, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 650, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 50)": Field 'items' doesn't have a default value
+[16/08/2022 01:23:53] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1662.762451, -2254.733398, -2.027685, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 651, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 51)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:06] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('tyrantabitch', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 1337)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:24:08] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('tyrantabitch', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 4)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:24:10] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('tyrantabitch', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 4)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:24:14] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1636.303101, -2257.227295, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 652, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 52)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:15] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1638.489990, -2255.777100, -1.963410, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 653, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 53)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:16] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1644.771362, -2256.184326, -1.940162, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 654, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 54)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:18] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1645.780884, -2253.499756, -1.947163, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 655, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 55)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:18] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1643.734619, -2251.608887, -2.845644, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 656, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 56)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:19] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1641.333496, -2253.270508, -2.052018, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 657, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 57)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:28] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('wavyyy', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 4)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:24:33] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('wavyyy', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 4)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 01:24:35] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1643.023682, -2250.542236, -2.845644, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 658, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 58)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:36] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1640.663940, -2250.753418, -1.940978, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 659, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 59)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:36] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1638.807373, -2251.100098, -2.851562, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 660, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 60)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:37] [ERROR] error #1364 while executing query "INSERT INTO `houses` (posx, posy, posz, exitx, exity, exitz, checkx, checky, checkz, world, info, price, owned, owner, cash, rentprice, rentable, locked, radio, complex, scriptid) VALUES(1638.732178, -2253.897461, -1.961517, 45.896301, 1439.564087, 1082.411987, 45.896301, 1439.564087, 1082.411987, 661, 'Unknown, Los Santos International, Los Santos 218', 1, 0, 'The State', 0, 0, 0, 1, 0, -1, 61)": Field 'items' doesn't have a default value
+[16/08/2022 01:24:47] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1629.214233, -2252.100586, -2.851562, 'Gas Station', 'The State', 0, 1, 1, 0, 0, 1)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:03] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1628.456299, -2255.138916, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:04] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1628.018921, -2257.393799, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:06] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1627.331421, -2255.041504, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:07] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1626.291870, -2252.423340, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:08] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1624.035034, -2252.053223, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:09] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1621.633057, -2251.609131, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:10] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1619.664673, -2251.811523, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:11] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1617.602539, -2251.438965, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:12] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1615.602051, -2251.074219, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:13] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1613.613403, -2250.712402, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:14] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1611.740234, -2250.372314, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:15] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1609.567627, -2249.975098, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:16] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1608.012817, -2249.965332, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:17] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1608.451050, -2251.721924, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:18] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1610.165771, -2252.037109, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:19] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1611.928589, -2252.360352, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:20] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1613.868774, -2252.714844, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:22] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1615.941162, -2253.091553, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:23] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1618.000732, -2253.228760, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:24] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1620.094482, -2253.610840, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:25] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1621.478882, -2253.444824, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:26] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1623.964844, -2253.898682, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:27] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1626.744629, -2254.136719, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:25:28] [ERROR] error #1364 while executing query "INSERT INTO `business` (biz_enX, biz_enY, biz_enZ, biz_info, biz_owner, biz_owned, biz_locked, biz_price, biz_till, biz_world, biz_type) VALUES(1629.867798, -2254.019287, -2.851562, 'Vehicle Dealerships', 'The State', 0, 1, 1, 0, 0, 4)": Field 'biz_items' doesn't have a default value
+[16/08/2022 01:27:41] [ERROR] error #1364 while executing query "INSERT INTO accounts (Username, Password, Quiz, Admin) VALUES ('tyrantabitch', 'FD9D94340DBD72C11B37EBB0D2A19B4D05E00FD78E4E2CE8923B9EA3A54E900DF181CFB112A8A73228D1F3551680E2AD9701A4FCFB248FA7FA77B95180628BB2', 1, 4)": Field 'SecretHint' doesn't have a default value
+[16/08/2022 16:34:44] [ERROR] error #1364 while executing query "INSERT INTO logs_connection (master, ip, serial) VALUES ('Pitix', '77.29.156.171', 'C99E89D0EAF9C884C5C5EF898DA5E5CEC55EC9DE')": Field 'char_name' doesn't have a default value

+ 0 - 0
samp03/logs/warnings.log


BIN
samp03/npcmodes/at400_ls.amx


+ 58 - 0
samp03/npcmodes/at400_ls.pwn

@@ -0,0 +1,58 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_ls_to_lv_x1");
+	}
+	else if(gPlaybackFileCycle==1) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_lv_to_sf_x1");
+	}
+	else if(gPlaybackFileCycle==2) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_sf_to_ls_x1");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/at400_lv.amx


+ 58 - 0
samp03/npcmodes/at400_lv.pwn

@@ -0,0 +1,58 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_lv_to_sf_x1");
+	}
+	else if(gPlaybackFileCycle==1) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_sf_to_ls_x1");
+	}
+	else if(gPlaybackFileCycle==2) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_ls_to_lv_x1");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/at400_sf.amx


+ 58 - 0
samp03/npcmodes/at400_sf.pwn

@@ -0,0 +1,58 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_sf_to_ls_x1");
+	}
+	else if(gPlaybackFileCycle==1) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_ls_to_lv_x1");
+	}
+	else if(gPlaybackFileCycle==2) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"at400_lv_to_sf_x1");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/mat_test.amx


+ 41 - 0
samp03/npcmodes/mat_test.pwn

@@ -0,0 +1,41 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"carmod968");
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/npcidle.amx


+ 15 - 0
samp03/npcmodes/npcidle.pwn

@@ -0,0 +1,15 @@
+//
+// NPC Test Script
+// Kye 2009
+//
+
+#include <a_npc>
+
+//------------------------------------------
+
+main()
+{
+    printf("npcidle: running");
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/npctest.amx


+ 164 - 0
samp03/npcmodes/npctest.pwn

@@ -0,0 +1,164 @@
+//
+// NPC Test Script
+// Kye 2009
+//
+
+#include <a_npc>
+
+forward TimerTest();
+
+//------------------------------------------
+
+main()
+{
+    printf("npctest: main()");
+}
+
+//------------------------------------------
+
+public OnNPCModeInit()
+{
+	printf("npctest: OnNPCModeInit");
+	SetTimer("TimerTest",30000,1);
+}
+
+//------------------------------------------
+
+public OnNPCModeExit()
+{
+	printf("npctest: OnNPCModeExit");
+}
+
+//------------------------------------------
+
+public TimerTest()
+{
+	//new ticker = GetTickCount() - g_LastTick;
+    //printf("npctest: timer (%d)ms", ticker);
+    //g_LastTick = GetTickCount();
+
+    new msg[256];
+    new name[64];
+	new Float:X,Float:Y,Float:Z;
+	new Float:Distance;
+	new x;
+	new num_streamed_in = 0;
+	new num_connected = 0;
+	
+	x=0;
+	while(x!=MAX_PLAYERS) {
+	    if(IsPlayerConnected(x)) {
+	        num_connected++;
+	        if(IsPlayerStreamedIn(x)) {
+	            num_streamed_in++;
+	       		GetPlayerName(x,name,64);
+				GetPlayerPos(x,X,Y,Z);
+				GetDistanceFromMeToPoint(X,Y,Z,Distance);
+				format(msg,256,"I see %s @ %f units with state:%d health:%d armour:%d weapon:%d",
+						name,Distance,GetPlayerState(x),GetPlayerHealth(x),GetPlayerArmour(x),GetPlayerArmedWeapon(x));
+				SendChat(msg);
+
+				if(GetPlayerState(x) == PLAYER_STATE_DRIVER) {
+				    format(msg,256,"I see %s driving vehicle: %d",name,GetPlayerVehicleID(x));
+					SendChat(msg);
+				}
+				
+			}
+		}
+		x++;
+	}
+	
+	format(msg,256,"I have %d connected players with %d streamed in",num_connected,num_streamed_in);
+	SendChat(msg);
+
+	SendCommand("/me waits around patiently");
+}
+
+//------------------------------------------
+
+public OnNPCConnect(myplayerid)
+{
+	printf("npctest: OnNPCConnect(My playerid=%d)", myplayerid);
+}
+
+//------------------------------------------
+
+public OnNPCDisconnect(reason[])
+{
+	printf("npctest: OnNPCDisconnect(reason=%s)", reason);
+}
+
+//------------------------------------------
+
+public OnNPCSpawn()
+{
+    printf("npctest: OnNPCSpawn");
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+	printf("npctest: OnNPCEnterVehicle(vehicleid=%d,seatid=%d)", vehicleid, seatid);
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    printf("npctest: OnNPCExitVehicle");
+}
+
+//------------------------------------------
+
+public OnClientMessage(color, text[])
+{
+    printf("npctest: OnClientMessage(color=%d, text=%s)", color, text);
+}
+
+//------------------------------------------
+
+public OnPlayerDeath(playerid)
+{
+    printf("npctest: OnPlayerDeath(playerid=%d)", playerid);
+}
+
+//------------------------------------------
+
+public OnPlayerText(playerid, text[])
+{
+    printf("npctest: (CHAT)(from=%d, text=%s)", playerid, text);
+}
+
+//------------------------------------------
+
+public OnPlayerStreamIn(playerid)
+{
+    printf("npctest: OnPlayerStreamIn(playerid=%d)", playerid);
+}
+
+//------------------------------------------
+
+public OnPlayerStreamOut(playerid)
+{
+    printf("npctest: OnPlayerStreamOut(playerid=%d)", playerid);
+}
+
+//------------------------------------------
+
+public OnVehicleStreamIn(vehicleid)
+{
+    printf("npctest: OnVehicleStreamIn(vehicleid=%d)", vehicleid);
+}
+
+//------------------------------------------
+
+public OnVehicleStreamOut(vehicleid)
+{
+    printf("npctest: OnVehicleStreamOut(vehicleid=%d)", vehicleid);
+}
+
+//------------------------------------------
+
+
+

BIN
samp03/npcmodes/onfoot_test.amx


+ 38 - 0
samp03/npcmodes/onfoot_test.pwn

@@ -0,0 +1,38 @@
+//
+//
+
+#include <a_npc>
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+    StartRecordingPlayback(PLAYER_RECORDING_TYPE_ONFOOT,"truth1");
+}
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCSpawn()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/recordings/1031test.rec


BIN
samp03/npcmodes/recordings/at400_ls_to_lv_x1.rec


BIN
samp03/npcmodes/recordings/at400_lv_to_sf_x1.rec


BIN
samp03/npcmodes/recordings/at400_sf_to_ls_x1.rec


BIN
samp03/npcmodes/recordings/train_ls_to_sf1.rec


BIN
samp03/npcmodes/recordings/train_lv_to_ls1.rec


BIN
samp03/npcmodes/recordings/train_sf_to_lv1.rec


BIN
samp03/npcmodes/recordings/truth1.rec


BIN
samp03/npcmodes/taxi_ls_test.amx


+ 127 - 0
samp03/npcmodes/taxi_ls_test.pwn

@@ -0,0 +1,127 @@
+//
+// A test driver NPC with very basic AI
+// Kye 2009
+//
+
+#include <a_npc>
+
+new gStoppedForTraffic = 0;
+new gPlaybackActive = 0;
+
+public ScanTimer();
+
+#define AHEAD_OF_CAR_DISTANCE    11.0
+#define SCAN_RADIUS     		 11.0
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+stock GetXYInfrontOfMe(Float:distance, &Float:x, &Float:y)
+{
+    new Float:z, Float:angle;
+    GetMyPos(x,y,z);
+    GetMyFacingAngle(angle);
+    x += (distance * floatsin(-angle, degrees));
+    y += (distance * floatcos(-angle, degrees));
+}
+
+//------------------------------------------
+
+public OnNPCModeInit()
+{
+	SetTimer("ScanTimer",200,1);
+}
+
+//------------------------------------------
+
+LookForAReasonToPause()
+{
+  	new Float:X,Float:Y,Float:Z;
+	new x=0;
+	
+	GetMyPos(X,Y,Z);
+	GetXYInfrontOfMe(AHEAD_OF_CAR_DISTANCE,X,Y);
+	
+	while(x!=MAX_PLAYERS) {
+	    if(IsPlayerConnected(x) && IsPlayerStreamedIn(x)) {
+			if( GetPlayerState(x) == PLAYER_STATE_DRIVER ||
+			    GetPlayerState(x) == PLAYER_STATE_ONFOOT )
+			{
+				if(IsPlayerInRangeOfPoint(x,SCAN_RADIUS,X,Y,Z)) {
+					return 1;
+				}
+			}
+		}
+		x++;
+	}
+	
+	//new msg[256];
+	//new Float:angle;
+	//GetMyFacingAngle(angle);
+	//format(msg,256,"My yaw/heading = %f",angle);
+	//SendChat(msg);
+	
+	return 0;
+}
+
+
+//------------------------------------------
+
+public ScanTimer()
+{
+	//new ticker = GetTickCount() - g_LastTick;
+    //printf("npctest: timer (%d)ms", ticker);
+    //g_LastTick = GetTickCount();
+    
+    new ReasonToPause = LookForAReasonToPause();
+    
+	if(ReasonToPause && !gStoppedForTraffic)
+	{
+	    //SendChat("I'm pausing");
+		PauseRecordingPlayback();
+		gStoppedForTraffic = 1;
+	}
+	else if(!ReasonToPause && gStoppedForTraffic)
+	{
+	    //SendChat("I'm resuming");
+	    ResumeRecordingPlayback();
+	    gStoppedForTraffic = 0;
+	}
+}
+
+
+//------------------------------------------
+
+StartPlayback()
+{
+	StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"taxi_test_1282");
+	gStoppedForTraffic = 0;
+	gPlaybackActive = 1;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    StartPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    StartPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/train_ls.amx


+ 58 - 0
samp03/npcmodes/train_ls.pwn

@@ -0,0 +1,58 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_ls_to_sf1");
+	}
+	else if(gPlaybackFileCycle==1) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_sf_to_lv1");
+	}
+	else if(gPlaybackFileCycle==2) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_lv_to_ls1");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/train_lv.amx


+ 61 - 0
samp03/npcmodes/train_lv.pwn

@@ -0,0 +1,61 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_lv_to_ls1");
+		//SendChat("I'm leaving LV for LS station.");
+	}
+	else if(gPlaybackFileCycle==1) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_ls_to_sf1");
+	    //SendChat("I'm leaving LS for SF station.");
+	}
+	else if(gPlaybackFileCycle==2) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_sf_to_lv1");
+	    //SendChat("I'm leaving SF for LV station.");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/npcmodes/train_sf.amx


+ 58 - 0
samp03/npcmodes/train_sf.pwn

@@ -0,0 +1,58 @@
+//
+// A Driver NPC that goes around a path continuously
+// Kye 2009
+//
+
+#include <a_npc>
+
+#define NUM_PLAYBACK_FILES 3
+new gPlaybackFileCycle=0;
+
+//------------------------------------------
+
+main(){}
+
+//------------------------------------------
+
+NextPlayback()
+{
+	// Reset the cycle count if we reach the max
+	if(gPlaybackFileCycle==NUM_PLAYBACK_FILES) gPlaybackFileCycle = 0;
+
+	if(gPlaybackFileCycle==0) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_sf_to_lv1");
+	}
+	else if(gPlaybackFileCycle==1) {
+		StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_lv_to_ls1");
+	}
+	else if(gPlaybackFileCycle==2) {
+	    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"train_ls_to_sf1");
+	}
+
+	gPlaybackFileCycle++;
+}
+	
+
+//------------------------------------------
+
+public OnRecordingPlaybackEnd()
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCEnterVehicle(vehicleid, seatid)
+{
+    NextPlayback();
+}
+
+//------------------------------------------
+
+public OnNPCExitVehicle()
+{
+    StopRecordingPlayback();
+    gPlaybackFileCycle = 0;
+}
+
+//------------------------------------------

BIN
samp03/plugins/crashdetect.so


BIN
samp03/plugins/mysql.so


BIN
samp03/plugins/mysql_static.so


+ 1 - 0
samp03/plugins/pawnregex.cfg

@@ -0,0 +1 @@
+LocaleName = "C"

BIN
samp03/plugins/pawnregex.so


BIN
samp03/plugins/regex.so


BIN
samp03/plugins/sscanf.so


BIN
samp03/plugins/streamer.so


BIN
samp03/plugins/whirlpool.so


BIN
samp03/samp-npc


BIN
samp03/samp03svr


BIN
samp03/scriptfiles/callbackfix.amx


+ 0 - 0
samp03/scriptfiles/handling.db


+ 3 - 0
samp03/scriptfiles/properties/banks.txt

@@ -0,0 +1,3 @@
+1274, 1458.915039, -1012.298583, 26.843750, 186.883041, 84, 3 ; // Main LS Bank (Kye)
+1274, 2363.286376, 2377.655029, 10.820312, 256.108428, 84, 3 ; // LV Bank (Kye)
+1274, -1581.240600, 903.586364, 7.695312, 177.860778, 84, 3 ; // SF bank (Kye)

+ 108 - 0
samp03/scriptfiles/properties/businesses.txt

@@ -0,0 +1,108 @@
+1272, 1315.389648, -898.885803, 39.578125, 352.437835, 125, 2 ; // 24/7 LS (damo)
+1272, 1199.693847, -919.824829, 43.107589, 359.216644, 47, 2 ; // burger shot LS (damo)
+1272, 1087.605468, -922.871948, 43.390625, 17.284997, 17, 2 ; // sex shop ls (damo)
+1272, 927.423706, -1352.795166, 13.376624, 264.936157, 130, 2 ; // Cluckin Bell South LS Beach (Kye)
+1272, 953.874816, -1336.391479, 13.538938, 177.139328, 17, 2 ; // ls sex shop (damo)
+1272, 2421.620361, -1509.163085, 23.992208, 88.295097, 130, 2 ; // Cluckin Bell South LS Grove (Kye)
+1272, 2309.676757, -1644.051757, 14.827047, 333.614624, 139, 2 ; // Ten Green Bottles Bar LS (Kye)
+1272, 2421.507324, -1219.351928, 25.554723, 0.673891, 40, 2 ; // pig pen strip club edit interior pos ( damo )
+1272, 1835.677490, -1682.488403, 13.379734, 274.638153, 64, 2 ; // Alahambra (Kye)
+1272, -2026.599121, -101.420875, 35.164062, 179.649490, 134, 2 ; // Driving school (Kye)
+1272, -2243.077392, -88.254119, 35.320312, 270.197021, 139, 2 ; // Misty's in SF (Kye)
+1272, 2020.498535, 1007.743408, 10.820312, 91.738945, 41, 2 ; // Four dragons LV (Kye)
+1272, 2195.840087, 1677.150512, 12.367187, 270.124633, 48, 2 ; // Caligula's Casino LV (Kye)
+1272, 2413.159912, 1123.804077, 10.820312, 90.420768, 14, 2 ; // City Planning Dept (Kye)
+1272, 2083.363037, 2223.861572, 11.023437, 4.465465, 22, 2 ; // LV Pizza (Damian)
+1272, 1872.878784, 2071.857666, 11.062500, 54.375713, 47, 2 ; // Burgershot LV (Kye)
+1272, 2507.153076, 2121.128173, 10.840013, 170.379791, 40, 2 ; // Strip club central LV (Kye)
+1272, 2637.511718, 1671.698120, 11.023437, 272.170532, 130, 2 ; // Cluckin Bell East LV (kye)
+1272, 2546.290283, 1971.762695, 10.820312, 336.967773, 28, 2 ; // 24/7 large central 24/7 LV (kye)
+1272, -2672.043945, 258.937194, 4.632812, 189.680572, 130, 2 ; // Cluckin Bell mid SF beach (Kye)
+1272, -2356.885498, 1008.085449, 50.898437, 268.259033, 47, 2 ; // Burger Shot SF (dugi)
+1272, -1911.886352, 828.324584, 35.190605, 137.322372, 47, 2 ; // Burger Shot SF (dugi)
+1272, -1808.028808, 945.119873, 24.890625, 44.066570, 22, 2 ; // Pizza SF (dugi)
+1272, -1816.763427, 617.589660, 35.171875, 353.020690, 130, 2 ; // Cluckin Bell SF (dugi)
+1272, -1721.932250, 1359.860717, 7.185316, 268.479644, 22, 2 ; // Pizza stack shore SF (kye)
+1272, -2154.623535, -2460.848876, 30.851562, 48.116821, 130, 2 ; // Cluckin Bell Angel Pine (dugi)
+1272, 203.338851, -203.111373, 1.578125, 359.526367, 22, 2 ; // Pizza Blueberry (dugi)
+1272, -2336.397460, -166.919891, 35.554687, 89.161506, 47, 2 ; // South SF BurgerShot (Damian)
+1272, 172.669723, 1176.409179, 14.764543, 328.506103, 130, 2 ; // Cluckin Bell Fort Carson (dugi)
+1272, -2624.398925, 1411.984985, 7.093750, 16.604684, 54, 2 ; // Pleasure Dome SF (Kye)
+1272, 2332.967041, 75.052017, 26.620975, 91.960708, 22, 2 ; // Pizza Palomino Creek (dugi)
+1272, 1367.071044, 248.593109, 19.566932, 245.808715, 22, 2 ; // Pizza Montgomery (dugi)
+1272, 810.959289, -1616.228393, 13.546875, 84.417098, 47, 2 ; // Burger Shot LS
+1272, 2366.433105, 2071.120605, 10.820312, 270.745697, 47, 2 ; // Burger Shot LV (dugi)
+1272, 2472.081542, 2034.191772, 11.062500, 270.432434, 47, 2 ; // Burger Shot LV (dugi)
+1272, 2393.012207, 2043.314697, 10.820312, 180.865066, 130, 2 ; // Cluckin Bell LV (dugi)
+1272, 2846.259521, 2414.882568, 11.068956, 43.913692, 130, 2 ; // Cluckin Bell LV (dugi)
+1272, 2756.376708, 2476.747314, 11.062500, 319.626251, 22, 2 ; // Pizza LV (dugi)
+1272, 2885.277587, 2453.478271, 11.068956, 49.530166, 98, 2 ; // 24/7 LV (dugi)
+1272, -2242.484130, 128.449966, 35.320312, 271.954223, 121, 2 ; // Zero's RC (dugi)
+1272, -2442.768310, 754.327941, 35.171875, 0.069979, 20, 2 ; // 24/7 SF (dugi)
+1272, 1631.911132, -1172.027099, 24.078125, 180.096817, 4, 2 ; // Inside Track LS (dugi)
+1272, 1289.185424, 270.880920, 19.554687, 58.704734, 4, 2 ; // Inside Track Montgomery (dugi)
+1272, 1038.215576, -1339.617309, 13.726562, 171.631546, 23, 2 ; // Doughnut Shop LS (Damian)
+1272, 2094.657714, 2122.192871, 10.820312, 358.659179, 18, 2 ; // Tattoo parlor LV (dugi)
+1272, 2085.687255, 2074.024902, 11.054687, 90.405708, 17, 2 ; // Sex Shop LV (dugi)
+1272, 693.628173, 1966.920166, 5.539062, 7.975008, 6, 2 ; // Strip Club Bone County (dugi)
+1272, 1158.547973, 2072.261474, 11.062500, 89.872474, 47, 2 ; // Burger Shot LV (dugi)
+1272, 2170.229003, 2795.691894, 10.820312, 85.485740, 47, 2 ; // Burger Shot LV (dugi)
+1272, 2330.606201, 2532.529785, 10.820312, 359.255584, 22, 2 ; // Pizza LV (dugi)
+1272, 2825.737060, 2407.213623, 11.062500, 312.545074, 16, 2 ; // Pro Laps LV (dugi)
+1272, 2802.501220, 2430.280273, 11.062500, 318.185119, 25, 2 ; // Victim LV (dugi)
+1272, 2779.359375, 2453.658691, 11.062500, 314.425018, 33, 2 ; // Suburban LV (dugi)
+1272, 2102.554687, 2228.759033, 11.023437, 97.608024, 130, 2 ; // Cluckin Bell LV (dugi)
+1272, 2102.572265, 2257.474365, 11.023437, 93.221321, 80, 2 ; // Binco LV (dugi)
+1272, 2097.767578, 2223.978515, 11.023437, 3.920505, 125, 2 ; // 24/7 LV (dugi)
+1272, 2090.559570, 2224.423828, 11.023437, 4.860523, 53, 2 ; // Zip LV (dugi)
+1272, 2194.563720, 1991.017944, 12.296875, 270.419586, 125, 2 ; // 24/7 LV (dugi)
+1272, 2452.393310, 2064.608154, 10.820312, 0.861728, 125, 2 ; // 24/7 LV (dugi)
+1272, 2441.232421, 2064.397949, 10.820312, 2.428423, 139, 2 ; // Craw Bar LV (dugi)
+1272, 2080.458740, 2121.975341, 10.812517, 4.778643, 13, 2 ; // Barber Shop LV (dugi)
+1272, -2571.014892, 246.275955, 10.185619, 39.503566, 13, 2 ; // Barber Shop SF (dugi)
+1272, -2492.447998, -38.669422, 25.765625, 264.432312, 19, 2 ; // Tattoo shop SF (dugi)
+1272, -2492.282470, -29.028230, 25.765625, 267.565582, 33, 2 ; // SubUrban SF (dugi)
+1272, -1883.063476, 865.582031, 35.172843, 321.459350, 53, 2 ; // Zip SF (dugi)
+1272, -1693.950805, 950.370056, 24.890625, 317.699249, 25, 2 ; // Victim SF (dugi)
+1272, -2374.904052, 910.287475, 45.445312, 260.865631, 80, 2 ; // Binco SF (dugi)
+1272, 2069.536621, -1779.876708, 13.559158, 85.397308, 66, 2 ; // Tatto parlor LS (dugi)
+1272, 2071.437255, -1793.805786, 13.553277, 89.807350, 13, 2 ; // Barber Shop LS (dugi)
+1272, 2104.495605, -1806.595214, 13.554687, 271.855743, 22, 2 ; // Pizza LS (dugi)
+1272, 453.227142, -1478.244018, 30.812078, 289.547210, 61, 2 ; // Didier Sachs LS (dugi)
+1272, 1368.388671, -1279.795898, 13.546875, 273.337646, 32, 2 ; // ammunation LS (damo)
+1272, 2397.941406, -1898.133666, 13.546875, 182.602310, 130, 2 ; // cluckin' bell
+1272, -1561.987426, -2733.466552, 48.743457, 55.909801, 52, 2 ; // 24/7 dugi
+1272, 2781.348144, -1814.231079, 11.843750, 218.271469, 39, 2 ; // Los Santos Forum
+1272, -2093.248046, -2464.454589, 30.625000, 141.188079, 122, 2 ; // ammunation dugi
+1272, 1975.763061, -2036.651611, 13.546875, 97.980766, 66, 2 ; // Tatoo
+1272, 1941.082763, -2116.011474, 13.695312, 91.825485, 17, 2 ; // Sex Shop
+1272, 1832.444946, -1842.604736, 13.578125, 271.837738, 20, 2 ; // 24/7
+1272, 2158.767333, 943.083129, 10.820312, 108.761138, 96, 2 ; // Ammunation LV G-sTyLeZzZ
+1272, 2638.084228, 1849.809326, 11.023437, 272.709197, 22, 2 ; // Pizza Stack dugi
+1272, -143.945327, 1224.217529, 19.899219, 4.773241, 23, 2 ; // Rusty Brown's Donuts dugi
+1272, 1969.270507, 2294.182617, 16.455863, 5.230399, 29, 2 ; // LV Gym G-sTyLeZzZ
+1272, 1937.173583, 2307.304931, 10.820312, 5.076000, 20, 2 ; // 24/7 G-sTyLeZzZ
+1272, -1508.861572, 2609.611572, 55.835937, 1.487694, 123, 2 ; // ammunation dugi
+1272, 2247.947509, 2397.572998, 10.820312, 3.952800, 125, 2 ; // 24/7 G-sTyLeZzZ
+1272, 2722.694335, -2026.645629, 13.547199, 270.978393, 13, 2 ; // Barber Shop in Playa Del Seville (kenny01)
+1272, 2538.900878, 2084.042968, 10.820312, 268.005279, 96, 2 ; // ammunation dugi
+1272, 823.392944, -1588.984252, 13.554450, 323.977264, 13, 2 ; // Barber Shop in Marina (kenny01)
+1272, 480.237731, -1536.156005, 19.538208, 117.396995, 16, 2 ; // Clothing Shop in Rodeo (KingJ)
+1272, -2767.562500, 788.794433, 52.781250, 92.500892, 23, 2 ; // donuts (dugi)
+1272, -2551.652832, 193.638565, 6.190325, 284.976623, 64, 2 ; // bar dugi
+1272, 1070.058349, -1221.396118, 16.890625, 265.590789, 16, 2 ; // Clothing Shop in Market (KingJ)
+1272, 811.207946, -1060.040649, 24.946811, 200.403091, 5, 2 ; // Video Shop in Vinewood (KingJ)
+1272, 499.961059, -1359.307128, 16.257724, 164.398086, 16, 2 ; // Pro-Laps in Rodeo (kenny01)
+1272, 460.946624, -1500.953002, 31.058170, 280.210174, 25, 2 ; // Victim in Rodeo (kenny01)
+1272, 681.296936, -474.303710, 16.536296, 2.417713, 75, 2 ; // The Welcome Pump in Dillimore (KingJ)
+1272, 2244.590820, -1664.513061, 15.476562, 167.776901, 80, 2 ; // Binco in Ganton (kenny01)
+1272, 674.178527, -497.001251, 16.335937, 96.858970, 108, 2 ; // Barber Shop in Dillimore (KingJ)
+1272, 661.015319, -573.572692, 16.335937, 261.773193, 86, 2 ; // Dillimore Gas Station (KingJ)
+1272, 2354.133056, -1512.185668, 24.000000, 320.673034, 87, 2 ; // Mexican Inn (kenny01)
+1272, -2626.432128, 209.431488, 4.601754, 0.752900, 32, 2 ; // Ammu SF Kye
+1272, 2400.531738, -1980.582885, 13.546875, 175.231292, 122, 2 ; // ammu south LS Kye
+1272, 778.146789, 1871.564575, 4.907619, 90.455406, 122, 2 ; // ammu bone Kye
+1272, -314.774688, 829.901977, 14.242187, 95.132049, 122, 2 ; // ammu bone Kye
+1272, 241.099655, -178.363815, 1.578125, 265.502624, 96, 2 ; // Ammu blueberry Kye
+1272, 2334.055664, 61.541301, 26.484687, 177.983642, 122, 2 ; // Ammu Kye
+1272, 1481.034667, -1770.273193, 18.795755, 174.243774, 14, 2 ; // LS City Dept (Kye)

+ 141 - 0
samp03/scriptfiles/properties/houses.txt

@@ -0,0 +1,141 @@
+1273, 2317.130615, 692.398498, 11.460937, 182.779815, 114, 1 ; // LV house 1 (Kye)
+1273, 2346.872802, 692.999267, 11.460937, 169.544052, 114, 1 ; // LV house 2 (Kye)
+1273, 2396.482666, 691.487060, 11.453125, 204.504104, 114, 1 ; // LV South house std (Kye)
+1273, 2398.476074, 735.344665, 11.460937, 2.251268, 135, 1 ; // Another LV south house (Kye)
+1273, 2368.863525, 733.627502, 11.460937, 340.751281, 135, 1 ; // Another LV south house (Kye)
+1273, 2013.253906, 731.041870, 11.453125, 184.224456, 135, 1 ; // Another LV south house (Kye)
+1273, 2449.826660, 742.588806, 11.460937, 277.908294, 135, 1 ; // South LV house (dugi)
+1273, 315.854431, -1770.274780, 4.650740, 0.550503, 142, 1 ; // LS beach large place prime (Kye)
+1273, 281.030181, -1768.148315, 4.530816, 7.038213, 143, 1 ; // LS beach place mid single (Kye)
+1273, 192.812255, -1769.919677, 4.310826, 354.301971, 120, 1 ; // LS beach place low small (Kye)
+1273, 206.922988, -1769.517211, 4.356268, 358.837310, 120, 1 ; // LS beach place low small 2 (Kye)
+1273, 2459.298095, -1690.607910, 13.547365, 184.625762, 43, 1 ; // ryders house (Kye)
+1273, -1213.113037, 1831.049316, 41.929687, 135.571823, 130, 1 ; // cluckin bell dugi
+1273, 1258.558471, -785.422668, 92.030181, 272.087768, 55, 1 ; // Madd Dogg's (dugi)
+1273, 1496.315429, -689.928100, 94.750000, 177.589370, 119, 1 ; // north LS G-sTyLeZzZ
+1273, 300.189880, -1154.397094, 81.390960, 315.521514, 115, 1 ; // a mansion, dugi
+1273, 252.362152, -1221.875488, 75.360870, 200.571807, 142, 1 ; // north LS G-sTyLeZzZ
+1273, 190.298828, -1307.772094, 70.263801, 137.011840, 115, 1 ; // Rodeo G-sTyLeZzZ
+1273, 219.711242, -1250.425537, 78.332633, 33.503372, 119, 1 ; // dugi
+1273, 252.680297, -1269.471435, 74.104919, 311.346252, 69, 1 ; // west LS G-sTyLeZzZ
+1273, 298.387359, -1337.811645, 53.441535, 214.352890, 94, 1 ; // dugi
+1273, 255.220260, -1366.634643, 53.109375, 120.502304, 115, 1 ; // dugi
+1273, 2449.662353, 714.210693, 11.468292, 274.666778, 114, 1 ; // LV House
+1273, 2447.716796, 690.144653, 11.460937, 245.059600, 78, 1 ; // LV house Kye
+1273, 2448.996093, 662.627441, 11.460937, 272.695922, 68, 1 ; // LV house Kye
+1273, 2397.470458, 655.481445, 11.460937, 6.485405, 67, 1 ; // LV house Kye
+1273, 2362.470703, 656.314331, 11.460937, 275.680511, 114, 1 ; // LV house Kye
+1273, 2346.697998, 735.580444, 11.468292, 13.737228, 78, 1 ; // LV House (LnX)
+1273, 2317.844970, 655.250122, 11.453125, 12.854166, 114, 1 ; // LV house Kye
+1273, 2257.737548, 733.586120, 11.460937, 9.180140, 114, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2368.393310, 691.006591, 11.460479, 184.077713, 67, 1 ; // LV House (LnX)
+1273, 2346.375732, 656.261230, 11.460479, 23.631895, 114, 1 ; // LV house Zero
+1273, 2227.255615, 733.433471, 11.460937, 90.000000, 68, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2256.981689, 691.779357, 11.453125, 179.134613, 68, 1 ; // LV House (LnX)
+1273, 2227.587890, 691.652465, 11.460479, 95.925140, 67, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2207.006103, 693.637756, 11.460937, 160.544937, 114, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2258.226318, 654.880554, 11.453125, 9.470176, 78, 1 ; // LV House Kye
+1273, 2205.908447, 735.351745, 11.468292, 1.969106, 114, 1 ; // LV House (LnX)
+1273, 2176.783935, 692.591796, 11.460937, 193.445266, 68, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2206.465332, 655.235717, 11.468292, 4.958120, 78, 1 ; // LV House Kye
+1273, 2228.889648, 654.424926, 11.460937, 3.462363, 114, 1 ; // LV Damian
+1273, 2177.743408, 735.305053, 11.460937, 2.622516, 78, 1 ; // LV House (LnX)
+1273, 2178.136230, 655.406799, 11.460937, 8.342191, 114, 1 ; // LV House Kye
+1273, 2123.552246, 652.331848, 11.460937, 158.371978, 78, 1 ; // LV house Zero
+1273, 2120.885498, 694.305236, 11.453125, 27.063673, 67, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2094.286865, 651.581237, 11.460937, 154.298599, 67, 1 ; // LV house Zero
+1273, 2167.506103, 772.304321, 11.460937, 265.815429, 67, 1 ; // LV House (LnX)
+1273, 2090.029785, 692.630737, 11.460937, 333.483184, 114, 1 ; // house LV (G-sTyLeZzZ)
+1273, 2069.332275, 695.559570, 11.468292, 35.414485, 67, 1 ; // LV House Kye
+1273, 2065.349121, 651.380493, 11.468292, 197.225723, 68, 1 ; // LV house Zero
+1273, 2043.601318, 652.595214, 11.460937, 162.132064, 114, 1 ; // LV house Zero
+1273, 2040.646484, 695.652099, 11.453125, 19.622365, 68, 1 ; // LV House Kye
+1273, 2011.528808, 694.625000, 11.460937, 2.289265, 78, 1 ; // LV Damian
+1273, 2014.208251, 651.651611, 11.460937, 205.038665, 68, 1 ; // House LV (G-sTyLeZzZ)
+1273, 2122.496826, 732.888610, 11.460937, 182.564208, 68, 1 ; // LV House (LnX)
+1273, 2042.426513, 732.610412, 11.460937, 184.402526, 68, 1 ; // LV house Zero
+1273, 2013.497558, 773.354125, 11.460937, 323.793151, 114, 1 ; // House LV (G-sTyLeZzZ)
+1273, 2064.762695, 730.806030, 11.468292, 195.995971, 114, 1 ; // LV house Zero
+1273, 2043.390991, 775.424621, 11.453125, 4.938606, 67, 1 ; // LV Damian
+1273, 2094.222412, 774.343688, 11.453125, 0.383321, 114, 1 ; //
+1273, 2093.200195, 731.466735, 11.453125, 186.282638, 67, 1 ; // LV house Zero
+1273, 2073.364501, 774.111022, 11.460479, 124.920562, 67, 1 ; // House LV (G-sTyLeZzZ)
+1273, 2123.398193, 774.684936, 11.445312, 359.118041, 114, 1 ; // LV House (LnX)
+1273, 1845.072021, 718.683532, 11.468292, 88.770080, 68, 1 ; //
+1273, 1846.557617, 741.209411, 11.460937, 74.151039, 67, 1 ; // LV House Kye
+1273, 1845.254028, 690.453979, 11.453125, 101.787376, 67, 1 ; // LV House Kye
+1273, 1846.479003, 661.228088, 11.460937, 92.506767, 67, 1 ; //
+1273, 2018.026245, 2663.991210, 11.054918, 15.468196, 114, 1 ; // LV House Zero
+1273, 1275.176757, 2522.445312, 10.820312, 90.000015, 69, 1 ; //
+1273, 1270.531005, 2554.491943, 10.820312, 91.566696, 113, 1 ; //
+1273, 1363.649902, 2525.360595, 10.820312, 92.749183, 115, 1 ; // LV Rich area Kye
+1273, 1969.894653, 2722.990722, 10.820312, 179.226913, 78, 1 ; // LV House (LnX)
+1273, 1406.890136, 2524.715576, 10.820312, 273.230895, 113, 1 ; // LV Rich area Kye
+1273, 2037.336181, 2723.302978, 10.820312, 175.803634, 67, 1 ; // LV House (LnX)
+1273, 1359.510498, 2567.368408, 10.820312, 189.593490, 101, 1 ; // LV Rich area Kye
+1273, 1344.430419, 2609.381103, 11.054918, 8.013926, 78, 1 ; // LV House Zero
+1273, 1272.448486, 2564.493408, 10.820312, 88.746650, 101, 1 ; //
+1273, 1349.822631, 2568.807617, 10.820312, 176.057281, 113, 1 ; // LV Rich area Kye
+1273, 1325.734252, 2568.900390, 10.820312, 178.313217, 69, 1 ; // LV Rich area Kye
+1273, 1313.819946, 2609.700683, 11.054918, 2.060562, 68, 1 ; // LV House Zero
+1273, 2018.687622, 2763.154296, 10.820312, 356.286560, 69, 1 ; // House LV (G-sTyLeZzZ)
+1273, 1998.540283, 2725.872070, 10.820312, 184.970031, 68, 1 ; // LV House (LnX)
+1273, 1315.996582, 2524.513183, 10.820312, 269.204895, 115, 1 ; //
+1273, 1225.387329, 2584.848632, 10.820312, 90.313278, 69, 1 ; //
+1273, 1224.217163, 2616.902587, 10.820312, 97.724426, 69, 1 ; // LV Rich area Kye
+1273, 1967.444824, 2761.809326, 10.820312, 357.226593, 115, 1 ; // House LV (G-sTyLeZzZ)
+1273, 1931.476562, 2725.673095, 10.820312, 174.574920, 69, 1 ; // House LV (G-sTyLeZzZ)
+1273, 1735.812622, 2694.982177, 10.820312, 182.306198, 113, 1 ; // LV House (LnX)
+1273, 1703.598754, 2691.351318, 10.820312, 176.039428, 69, 1 ; // LV House (LnX)
+1273, 1417.925292, 2567.529541, 10.820312, 180.070266, 113, 1 ; // North LV Damian
+1273, 1441.614990, 2568.206542, 10.820312, 181.494308, 69, 1 ; //
+1273, 1678.395019, 2693.609863, 10.820312, 176.589813, 115, 1 ; // LV House (LnX)
+1273, 1451.328613, 2566.054931, 10.820312, 181.807647, 101, 1 ; //
+1273, 1503.332763, 2567.950683, 10.820312, 176.235076, 115, 1 ; // LV Rich area Kye
+1273, 1500.354736, 2535.280761, 10.820312, 273.302032, 115, 1 ; //
+1273, 1652.377197, 2711.319824, 10.820312, 180.449371, 101, 1 ; // LV House (LnX)
+1273, 1454.481323, 2525.556396, 10.820312, 87.493606, 119, 1 ; //
+1273, 1627.051635, 2713.507568, 10.820312, 179.291137, 113, 1 ; // LV House (LnX)
+1273, 1513.327026, 2565.617187, 10.826543, 184.513748, 69, 1 ; // North LV Damian
+1273, 1601.040161, 2711.831054, 10.820312, 178.037750, 69, 1 ; // LV House (LnX)
+1273, 1551.541625, 2568.360351, 10.820312, 180.183090, 101, 1 ; // LV Rich area Kye
+1273, 1596.451660, 2568.267333, 10.820312, 180.531066, 69, 1 ; //
+1273, 1564.606445, 2565.953369, 10.826543, 180.544830, 115, 1 ; // North LV Damian
+1273, 1623.385864, 2568.158935, 10.820312, 179.591079, 101, 1 ; //
+1273, 1579.990478, 2711.916015, 10.820312, 182.180740, 115, 1 ; // LV House (LnX)
+1273, 1570.285522, 2711.880371, 10.820312, 179.618988, 101, 1 ; // LV Rich area Kye
+1273, 1599.433837, 2753.685546, 10.820312, 359.842376, 101, 1 ; // LV House (LnX)
+1273, 1588.414306, 2798.134033, 10.820312, 179.956771, 101, 1 ; //
+1273, 1550.599975, 2845.106445, 10.820312, 0.664718, 113, 1 ; // LV Rich area Kye
+1273, 1575.859252, 2842.390625, 10.820312, 359.244812, 115, 1 ; // LV house Zero
+1273, 1664.808349, 2844.814697, 10.820312, 1.041683, 69, 1 ; //
+1273, 1622.730346, 2844.807861, 10.820312, 0.664663, 113, 1 ; // LV Rich area Kye
+1273, 1632.691040, 2843.818115, 10.820312, 358.281433, 69, 1 ; // LV house Zero
+1273, 1601.832031, 2845.577880, 10.826543, 3.658341, 101, 1 ; // North LV Damian
+1273, 2039.635131, 2764.448242, 10.820312, 1.700857, 113, 1 ; // LV Rich area Kye
+1273, 2049.612304, 2763.866943, 10.820312, 359.853332, 115, 1 ; // North LV Damian
+1273, 1929.038330, 2774.320800, 10.820312, 269.179656, 115, 1 ; //
+1273, 1331.612548, -632.414733, 109.134902, 203.760437, 68, 1 ; //
+1273, 1111.293090, -742.112792, 100.132926, 276.728576, 115, 1 ; // (LnX)
+1273, 1095.013549, -646.736450, 113.648437, 175.916549, 119, 1 ; //
+1273, 980.409179, -677.253051, 121.976257, 214.594116, 115, 1 ; //
+1273, 1034.237426, -812.036865, 101.851562, 213.788665, 101, 1 ; // LV mans Kye
+1273, 1045.015380, -642.206787, 120.117187, 191.720535, 101, 1 ; //
+1273, 1017.052673, -762.317504, 112.563018, 174.556472, 101, 1 ; // LV mans Kye
+1273, 836.253234, -894.453857, 68.768898, 148.157455, 115, 1 ; // Vinewood Damian
+1273, 977.552856, -769.945251, 112.202629, 188.467178, 106, 1 ; // Mas LS Kye
+1273, 909.618469, -816.779418, 103.126029, 205.214096, 101, 1 ; // Mas LS Kye
+1273, 937.126892, -847.384887, 93.794326, 210.125564, 67, 1 ; // Mas Area LS Kye
+1273, 989.786315, -828.664184, 95.468574, 208.749374, 101, 1 ; // Mas Area LS Kye
+1273, 945.673278, -709.558959, 122.210937, 206.872573, 67, 1 ; // LS mansion (LnX)
+1273, 725.143920, -998.932495, 52.734375, 63.610900, 114, 1 ; // JaTochNietDan || LS Mansion Area
+1273, 558.894897, -1075.639648, 72.921989, 349.237213, 115, 1 ; // ls mans Kye
+1273, 497.743774, -1094.264892, 82.359191, 8.330499, 101, 1 ; // ls mans area Kye
+1273, 432.875518, -1137.894287, 73.716911, 149.434005, 101, 1 ; // ls mans area Kye
+1273, 416.344238, -1154.672729, 76.687614, 326.929443, 101, 1 ; // ls mans area Kye
+1273, 646.717529, -1057.223999, 52.579917, 233.240234, 101, 1 ; // LS Mansion (LnX)
+1273, 671.226074, -1019.315063, 55.759605, 243.434051, 101, 1 ; // LS Mansion (LnX)
+1273, 699.908508, -1059.997314, 49.421691, 240.409179, 135, 1 ; // JaTochNietDan || LS Mansion Area
+1273, 351.905242, -1197.254028, 76.515625, 221.045486, 101, 1 ; // ls mans area Kye
+1273, 645.366394, -1117.179931, 44.207038, 244.135498, 68, 1 ; // LS mansion (LnX)
+1273, 398.212097, -1271.106567, 50.019790, 26.977687, 135, 1 ; // JaTochNietDan || LS Mansion Area

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików