#include "ff_include" void main() { SQLExecDirect("CREATE TABLE IF NOT EXISTS `global` ("+ "`VarName` varchar(64) NOT NULL default '',"+ "`Value` varchar(255) NOT NULL default '',"+ "PRIMARY KEY (`VarName`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `PCData` ("+ "`VarName` varchar(64) NOT NULL default '',"+ "`Id` smallint(5) unsigned NOT NULL,"+ "`Value` varchar(255) NOT NULL default '',"+ "PRIMARY KEY (`VarName`, `Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `areatransition` ("+ "`sTag` varchar(100) NOT NULL default '',"+ "`sName` varchar(100) NOT NULL default '',"+ "`iCount` int(11) NOT NULL default '0',"+ "PRIMARY KEY (`sTag`)"+ ") TYPE=MyISAM;"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cdkeys` ("+ "`Player` char(64) NOT NULL default '',"+ "`Date` timestamp(14) NOT NULL,"+ "`Ban` tinyint(1) NOT NULL default '0',"+ "`CDKey` char(20) NOT NULL default '',"+ "PRIMARY KEY (`Player`,`CDKey`)"+ ") TYPE=MyISAM"); if (FF_USING_CNR) { SQLExecDirect("CREATE TABLE IF NOT EXISTS `cmd_misc` (" + // "`player` VARCHAR(64) default NULL," + // "`tag` VARCHAR(64) default NULL," + "`VarName` VARCHAR(64) default NULL," + "`Value` VARCHAR(64) default NULL," + // "`expire` SMALLINT UNSIGNED default NULL," + "`last` TIMESTAMP(14) NOT NULL," + "PRIMARY KEY (`VarName`)" + ") TYPE=MyISAM" ); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cpv_misc` (" + // "`player` VARCHAR(64) default NULL," + // "`tag` VARCHAR(64) default NULL," + "`VarName` VARCHAR(64) default NULL," + "`Value` VARCHAR(64) default NULL," + // "`expire` SMALLINT UNSIGNED default NULL," + "`last` TIMESTAMP(14) NOT NULL," + "PRIMARY KEY (`VarName`)" + ") TYPE=MyISAM" ); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cnr_components` ("+ "`sKeyToComponent` varchar(64) NOT NULL default '',"+ "`sTag` varchar(16) NOT NULL default '',"+ "`nQty` int(11) default '1',"+ "`nRetainQty` int(11) default '0',"+ "`sKeyToRecipe` varchar(64) NOT NULL default '',"+ "`sDeviceTag` varchar(16) NOT NULL default '',"+ "PRIMARY KEY (`sKeyToComponent`),"+ "KEY `sDeviceTag` (`sDeviceTag`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cnr_devices` ("+ "`sDeviceTag` varchar(16) NOT NULL default '',"+ "`sAnimation` varchar(16) default NULL,"+ "`bSpawnInDevice` int(11) default '0',"+ "`sInvTool` varchar(16) default NULL,"+ "`sEqpTool` varchar(16) default NULL,"+ "`nTradeType` int(11) default '0',"+ "`fInvToolBP` float default '0',"+ "`fEqpToolBP` float default '0',"+ "PRIMARY KEY (`sDeviceTag`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cnr_recipes` ("+ "`sKeyToRecipe` varchar(64) NOT NULL default '',"+ "`sDeviceTag` varchar(16) NOT NULL default '',"+ "`sDescription` varchar(64) NOT NULL default '',"+ "`sTag` varchar(16) NOT NULL default '',"+ "`nQty` int(11) default '1',"+ "`sKeyToParent` varchar(64) NOT NULL default '',"+ "`sFilter` varchar(32) default NULL,"+ "`nStr` int(11) default '0',"+ "`nDex` int(11) default '0',"+ "`nCon` int(11) default '0',"+ "`nInt` int(11) default '0',"+ "`nWis` int(11) default '0',"+ "`nCha` int(11) default '0',"+ "`nLevel` int(11) default '1',"+ "`nGameXP` int(11) default '0',"+ "`nTradeXP` int(11) default '0',"+ "`bScalarOverride` int(11) default '0',"+ "`sAnimation` varchar(16) default NULL,"+ "`sBiTag` varchar(16) default NULL,"+ "`nBiQty` int(11) default '0',"+ "`nOnFailBiQty` int(11) default '0',"+ "PRIMARY KEY (`sKeyToRecipe`),"+ "KEY `sDeviceTag` (`sDeviceTag`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `cnr_submenus` ("+ "`sKeyToMenu` varchar(64) NOT NULL default '',"+ "`sKeyToParent` varchar(64) NOT NULL default '',"+ "`sTitle` varchar(64) NOT NULL default '',"+ "`sDeviceTag` varchar(16) NOT NULL default '',"+ "PRIMARY KEY (`sKeyToMenu`),"+ "KEY `sDeviceTag` (`sDeviceTag`)"+ ") TYPE=MyISAM"); SQLExecDirect("REPAIR TABLE cnr_components, cnr_devices, cnr_recipes, cnr_submenus, cmd_misc, cpv_misc"); SQLExecDirect("OPTIMIZE TABLE cnr_components, cnr_devices, cnr_recipes, cnr_submenus, cmd_misc, cpv_misc"); } SQLExecDirect("CREATE TABLE IF NOT EXISTS `pwdata` ("+ // APS compatibility table "`player` varchar(64) NOT NULL default '',"+ "`tag` varchar(64) NOT NULL default '',"+ "`name` varchar(64) NOT NULL default '',"+ "`val` varchar(64),"+ "`expire` smallint(5) unsigned default NULL,"+ "`last` timestamp(14) NOT NULL,"+ "PRIMARY KEY (`player`,`tag`,`name`)"+ ") TYPE=MyISAM"); SQLExecDirect("ALTER TABLE `pwdata` DROP INDEX `idx`"); SQLExecDirect("ALTER TABLE `pwdata` ADD UNIQUE `idx` ( `player` , `tag` , `name` )"); SQLExecDirect("DROP TABLE IF EXISTS `deleted`"); SQLExecDirect("CREATE TEMPORARY TABLE IF NOT EXISTS `deleted` ("+ "`Id` smallint(5) unsigned NOT NULL default '0',"+ "PRIMARY KEY (`Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `idplayer` ("+ "`Player` char(64) NOT NULL default '',"+ "`Name` char(64) NOT NULL default '',"+ "`Creation` date NOT NULL default '0000-00-00',"+ "`Version` tinyint(4) NOT NULL default '1',"+ "`DM` tinyint(1) NOT NULL default '0',"+ "`Actif` tinyint(1) NOT NULL default '0',"+ "`DernierPassage` timestamp(14) NOT NULL,"+ "`Ban` tinyint(1) NOT NULL default '0',"+ "`Id` smallint(5) unsigned NOT NULL auto_increment,"+ "PRIMARY KEY (`Player`,`Name`),"+ "UNIQUE KEY `IdKey` (`Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `items` ("+ "`ResRef` char(16) NOT NULL default '',"+ "`Name` char(64) NOT NULL default '',"+ "`Tag` char(32) NOT NULL default '',"+ "`Plot` tinyint(1) NOT NULL default '0',"+ "`Stolen` tinyint(1) NOT NULL default '0',"+ "`StackSize` tinyint(3) unsigned NOT NULL default '0',"+ "`Cost` mediumint(9) NOT NULL default '0',"+ "`BaseItem` smallint(6) NOT NULL default '0',"+ "`Id` smallint(5) unsigned NOT NULL auto_increment,"+ "`Checked` tinyint(1) NOT NULL default '0',"+ "`AddCost` mediumint(9) NOT NULL default '0',"+ "PRIMARY KEY (`Cost`,`Checked`,`ResRef`),"+ "UNIQUE KEY `Id` (`Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `log` ("+ "`Id` smallint(5) unsigned NOT NULL default '0',"+ "`Date` timestamp(14) NOT NULL,"+ "`Categorie` varchar(40) default '(NULL)',"+ "`SubCategorie` varchar(40) default '(NULL)',"+ "`Texte` varchar(255) default '(NULL)'"+ ") TYPE=MyISAM"); if (FF_USING_LOG_ACTIONS) { SQLExecDirect("CREATE TABLE IF NOT EXISTS `logactions` ("+ "`Id` smallint(6) NOT NULL default '0',"+ "`Action` enum('DESTROY','MESSAGE','DIALOG','DIALOG_BOOT','RUN','SQL','ANIM1','ANIM2','DM','ADMIN','CADEAU','OR','CREATE','MONSTER','ITEM') NOT NULL default 'DESTROY',"+ "`OnlyOnce` tinyint(1) NOT NULL default '1',"+ "`Date` datetime NOT NULL default '0000-00-00 00:00:00',"+ "`DelayFromLoad` double(7,2) NOT NULL default '12.00',"+ "`Value1` varchar(255) NOT NULL default '',"+ "`Value2` varchar(255) NOT NULL default '',"+ "PRIMARY KEY (`Id`)"+ ") TYPE=MyISAM COMMENT='Id: Id player (0=OnModuleLoad, -1=AllPlayers)'"); SQLExecDirect("REPAIR TABLE logactions"); SQLExecDirect("OPTIMIZE TABLE logactions"); } SQLExecDirect("CREATE TABLE IF NOT EXISTS `login` ("+ "`Id` smallint(5) unsigned NOT NULL default '0',"+ "`Event` enum('PC_IN','PC_OUT','DM_IN','DM_OUT','CONVERT','DEAD_IN','DEAD_OUT','STOP_SERVEUR','START_SERVEUR','START_MODULE','INVALIDE','EXPORT_CHARS') NOT NULL default 'INVALIDE',"+ "`Gold` int(11) default '-1',"+ "`xp` int(11) default '-1',"+ "`sKey` char(8) default '(NULL)',"+ "`IP` char(16) default '(NULL)',"+ "`Date` timestamp(14) NOT NULL,"+ "PRIMARY KEY (`Date`,`Event`,`Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("DROP TABLE IF EXISTS nwn_speech"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `PlayerData` ("+ "`Id` smallint(5) unsigned NOT NULL default '0',"+ "`Date` timestamp(14) NOT NULL,"+ "`Position` char(80) NOT NULL default '',"+ "`Time` int(11) NOT NULL default '0',"+ "`Damage` smallint(6) NOT NULL default '0',"+ "`Comments` char(80) default '',"+ "PRIMARY KEY (`Id`)"+ ") TYPE=MyISAM"); SQLExecDirect("CREATE TABLE IF NOT EXISTS `restart` ("+ "`NbPlayerMax` tinyint(4) default '0',"+ "`NbPlayerAvg` tinyint(4) default '0',"+ "`NbPlayerLast` tinyint(4) NOT NULL default '0',"+ "`NbDMMax` tinyint(4) default '0',"+ "`NbDMAvg` tinyint(4) default '0',"+ "`NbDMLast` tinyint(4) NOT NULL default '0',"+ "`Date` timestamp(14) NOT NULL,"+ "`CPUAvg` int(11) default '0',"+ "`CPUMax` int(11) default '0',"+ "`CPULast` int(11) NOT NULL default '0',"+ "`MemoryMax` int(11) default '0',"+ "`MemoryMin` int(11) default '0',"+ "`MemoryLast` int(11) NOT NULL default '0',"+ "`sModName` char(60) NOT NULL default '',"+ "`CauseRestart` tinyint(4) NOT NULL default '0',"+ "PRIMARY KEY (`Date`)"+ ") TYPE=MyISAM"); pwWriteLogCon(GetModule(), "START_MODULE"); SetLocalString(GetModule(), "PWId", "0"); SQLExecDirect("UPDATE idplayer SET Actif=0 WHERE Actif=1"); /* * Database cleaning, repair and optimization */ if (FF_CLEAN_LOGIN_DAYS>0) SQLExecDirect("DELETE FROM login WHERE Date0) SQLExecDirect("DELETE FROM log WHERE Date0) SQLExecDirect("REPLACE deleted SELECT Id FROM PlayerData WHERE Date0) SQLExecDirect("REPLACE deleted SELECT Id FROM PlayerData WHERE (PlayerData.Time<1000) AND (Date