[Problema] No se guardan las casas.
#1

Resulta que tengo un GM que funciona mediante MySQL, al poner /crearcasa, se crea y funciona correctamente, pero se pierden cuando reinicio el servidor. En cambio, las HQ sн que se guardan.
Cuando pongo /crearcasa funciona todo perfectamente, pero si miro en la DB, estбn los valores a 0. Pero si relleno esos valores manualmente, la casa sн que funciona al reiniciar. Les pongo el cуdigo de /crearcasa, /crearhq, Loadproperty, Saveproperty, LoadHeadQuarters y SaveHeadQuarters. Tambiйn el tramo de cуdigo de la DB:
Код:
	if(strcmp(cmd, "/crearcasa", true) == 0)
	{
	    new sql[80], row[512], id;
	    if(InfoJugador[playerid][pAdmin] < 6)
	    {
	        SendClientMessage(playerid, COLOR_LIGHTRED, "Insuficientes Permisos!");
	        return 1;
	    }

		print("Conectando SQL");
	    samp_mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
    	samp_mysql_select_db(MYSQL_DB);

		print("Query 1");
		format(sql, 80, "INSERT INTO casas (Owner) VALUES ('El Estado')");
		samp_mysql_query(sql);

		print("Query 2");
		format(sql, sizeof(sql), "SELECT COUNT(*) FROM casas");
		samp_mysql_query(sql);
		samp_mysql_store_result();
		samp_mysql_fetch_row(row);
		id = strval(row);
		printf("Query Result: %d",id);

		print("Seteando Datos");
		HouseInfo[id][hId] = id;
		HouseInfo[id][hLock] = 1;
		HouseInfo[id][hValue] = 30000;
		HouseInfo[id][hLevel] = 5;
		HouseInfo[id][hDinero] = 0;
		HouseInfo[id][hOwner] = 0;
		print("Seteando Armas");
		HouseInfo[id][hGun][0] = 0;
		HouseInfo[id][hAmmo][0] = 0;
		HouseInfo[id][hGun][1] = 0;
		HouseInfo[id][hAmmo][1] = 0;
		HouseInfo[id][hGun][2] = 0;
		HouseInfo[id][hAmmo][2] = 0;
		print("Seteando Droga");
		HouseInfo[id][hDroga] = 0;
		HouseInfo[id][hDroga2] = 0;
		print("Seteando Owner");
		format(HouseInfo[id][hOwner], 24, "El Estado");
		new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
  		GetPlayerPos(playerid, X[playerid],Y[playerid],Z[playerid]);
		print("Seteando Coords");
  		HouseInfo[id][hEx] = X[playerid];
  		HouseInfo[id][hEy] = Y[playerid];
  		HouseInfo[id][hEz] = Z[playerid];
		HouseInfo[id][hSx] = -794.9160;
  		HouseInfo[id][hSy] = 489.9226;
    	HouseInfo[id][hSz] = 1376.1953;
     	HouseInfo[id][hInterior] = 1;

		print("Salvando Datos");
		SaveProperty(idx);

		print("Creando Pickup");
		HouseInfo[id][hPickup] = CreatePickup(1273, 23,X[playerid],Y[playerid],Z[playerid]);
		return 1;
	}
//-----------------------------------HQ System--------------------------------------
	if(strcmp(cmd, "/crearhq", true) == 0)
	{
	    tmp = strtokex(cmdtext, idx);
	    if(!strlen(tmp))
	    {
	        SendClientMessage(playerid, COLOR_GRAD1, "USO: /crearhq [ID FACCION]");
	        return 1;
	    }
	    new faccionid = strval(tmp);
	    new sql[80], row[512], id;
	    if(InfoJugador[playerid][pAdmin] < 6)
	    {
	        SendClientMessage(playerid, COLOR_LIGHTRED, "Insuficientes Permisos!");
	        return 1;
	    }

	    samp_mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
    	samp_mysql_select_db(MYSQL_DB);

		format(sql, 80, "INSERT INTO headquarters (Nombre) VALUES ('HQ')");
		samp_mysql_query(sql);

		format(sql, sizeof(sql), "SELECT COUNT(*) FROM headquarters");
		samp_mysql_query(sql);
		samp_mysql_store_result();
		samp_mysql_fetch_row(row);
		id = strval(row);

		HeadQuarterInfo[id][hqFaccion] = faccionid;
		HeadQuarterInfo[id][hqLocked] = 0;
		HeadQuarterInfo[id][hqCajaFuerte] = 0;
		format(HeadQuarterInfo[id][hqName], 128, "HQ Numero %d", id);
		new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
  		GetPlayerPos(playerid, X[playerid],Y[playerid],Z[playerid]);
  		HeadQuarterInfo[id][hqEPos_x] = X[playerid];
  		HeadQuarterInfo[id][hqEPos_y] = Y[playerid];
  		HeadQuarterInfo[id][hqEPos_z] = Z[playerid];
		HeadQuarterInfo[id][hqSPos_x] = 2169.7097;
  		HeadQuarterInfo[id][hqSPos_y] = 1618.2808;
    	HeadQuarterInfo[id][hqSPos_z] = 999.9766;
     	HeadQuarterInfo[id][hqInterior] = 1;

		SaveHeadQuarter(id);

		HeadQuarterInfo[id][hqPickup] = CreatePickup(1273, 23,X[playerid],Y[playerid],Z[playerid]);
		return 1;
	}
Код:
LoadProperty()
{
    samp_mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
    samp_mysql_select_db(MYSQL_DB);
	new sql[80], row[512];
	format(sql, sizeof(sql), "SELECT COUNT(*) FROM casas");
	samp_mysql_query(sql);
	samp_mysql_store_result();
	samp_mysql_fetch_row(row);
	hcount = strval(row);

	for (new idx=1; idx<=hcount; idx++)
	{
	    format(sql, sizeof(sql), "SELECT * FROM casas WHERE id=%d LIMIT 1", idx);
	    samp_mysql_query(sql);
	    samp_mysql_store_result();
     	samp_mysql_fetch_row(row);
		split(row, arrCoords, '|');
		HouseInfo[idx][hId] = strval(arrCoords[0]);
		HouseInfo[idx][hEx] = floatstr(arrCoords[1]);
		HouseInfo[idx][hEy] = floatstr(arrCoords[2]);
		HouseInfo[idx][hEz] = floatstr(arrCoords[3]);
		HouseInfo[idx][hSx] = floatstr(arrCoords[4]);
		HouseInfo[idx][hSy] = floatstr(arrCoords[5]);
		HouseInfo[idx][hSz] = floatstr(arrCoords[6]);
		HouseInfo[idx][hInterior] = strval(arrCoords[7]);
		HouseInfo[idx][hOwned] = strval(arrCoords[8]);
		format(HouseInfo[idx][hOwner],24,"%s", arrCoords[9]);
		HouseInfo[idx][hLevel] = strval(arrCoords[10]);
		HouseInfo[idx][hValue] = strval(arrCoords[11]);
		HouseInfo[idx][hLock] = strval(arrCoords[12]);
		HouseInfo[idx][hGun][0] = strval(arrCoords[13]);
		HouseInfo[idx][hAmmo][0] = strval(arrCoords[14]);
		HouseInfo[idx][hGun][1] = strval(arrCoords[15]);
		HouseInfo[idx][hAmmo][1] = strval(arrCoords[16]);
		HouseInfo[idx][hGun][2] = strval(arrCoords[17]);
		HouseInfo[idx][hAmmo][2] = strval(arrCoords[18]);
		HouseInfo[idx][hDroga] = strval(arrCoords[19]);
		HouseInfo[idx][hDroga2] = strval(arrCoords[20]);
		HouseInfo[idx][hDinero] = strval(arrCoords[21]);
	}
	return 1;
}

SaveProperty(idx)
{
    new sql[1024];
    format(sql, 1024, "UPDATE casas SET EX=%f,EY=%f,EZ=%f,SX=%f,SY=%f,SZ=%f,Interior=%d,Owned=%d,Owner='%s',Nivel= %d,Costo=%d,Locked=%d WHERE id=%d",
	HouseInfo[idx][hEx],
	HouseInfo[idx][hEy],
	HouseInfo[idx][hEz],
	HouseInfo[idx][hSx],
	HouseInfo[idx][hSy],
	HouseInfo[idx][hSz],
	HouseInfo[idx][hInterior],
	HouseInfo[idx][hOwned],
	HouseInfo[idx][hOwner],
	HouseInfo[idx][hLevel],
	HouseInfo[idx][hValue],
	HouseInfo[idx][hLock],
	HouseInfo[idx][hId]);
	samp_mysql_query(sql);
	return 1;
}
Код:
LoadHeadQuarter()
{
    samp_mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS);
    samp_mysql_select_db(MYSQL_DB);
	new sql[80], row[512];
	format(sql, sizeof(sql), "SELECT COUNT(*) FROM headquarters");
	samp_mysql_query(sql);
	samp_mysql_store_result();
	samp_mysql_fetch_row(row);
	hqcount = strval(row);

	for (new idx=0; idx<hqcount; idx++)
	{
	    format(sql, sizeof(sql), "SELECT * FROM headquarters WHERE id=%d LIMIT 1", idx+1);
	    samp_mysql_query(sql);
	    samp_mysql_store_result();
     	samp_mysql_fetch_row(row);
		split(row, arrCoords, '|');
		format(HeadQuarterInfo[idx][hqName], 128, "%s", arrCoords[1]);
		HeadQuarterInfo[idx][hqFaccion] = strval(arrCoords[2]);
		HeadQuarterInfo[idx][hqEPos_x] = floatstr(arrCoords[3]);
		HeadQuarterInfo[idx][hqEPos_y] = floatstr(arrCoords[4]);
		HeadQuarterInfo[idx][hqEPos_z] = floatstr(arrCoords[5]);
		HeadQuarterInfo[idx][hqSPos_x] = floatstr(arrCoords[6]);
		HeadQuarterInfo[idx][hqSPos_y] = floatstr(arrCoords[7]);
		HeadQuarterInfo[idx][hqSPos_z] = floatstr(arrCoords[8]);
		HeadQuarterInfo[idx][hqInterior] = strval(arrCoords[9]);
		HeadQuarterInfo[idx][hqLocked] = strval(arrCoords[10]);
		HeadQuarterInfo[idx][hqCajaFuerte] = strval(arrCoords[11]);
		printf("HQ de la Facciуn: %d | X: %f Y:%f Z:%f | Interior: %d | Cerradura: %d | CF: $%d",
		    HeadQuarterInfo[idx][hqFaccion],
		    HeadQuarterInfo[idx][hqEPos_x],
		    HeadQuarterInfo[idx][hqEPos_y],
		    HeadQuarterInfo[idx][hqEPos_z],
		    HeadQuarterInfo[idx][hqInterior],
		    HeadQuarterInfo[idx][hqLocked],
		    HeadQuarterInfo[idx][hqCajaFuerte]);
	}
	printf("HQs Totales: %d",hqcount);
	return 1;
}

SaveHeadQuarter(i)
{
	new sql[1024];
	format(sql, sizeof(sql), "UPDATE headquarters SET Nombre='%s',Faccion=%d,EPos_X=%f,EPos_Y=%f,EPos_Z=%f,SPos_X=%f,SPos_Y=%f,SPos_Z=%f,Interior=%d,Locked=%d,CajaFuerte=%d WHERE id=%d LIMIT 1",
    HeadQuarterInfo[i][hqName],
	HeadQuarterInfo[i][hqFaccion],
	HeadQuarterInfo[i][hqEPos_x],
	HeadQuarterInfo[i][hqEPos_y],
	HeadQuarterInfo[i][hqEPos_z],
	HeadQuarterInfo[i][hqSPos_x],
	HeadQuarterInfo[i][hqSPos_y],
	HeadQuarterInfo[i][hqSPos_z],
	HeadQuarterInfo[i][hqInterior],
	HeadQuarterInfo[i][hqLocked],
	HeadQuarterInfo[i][hqCajaFuerte],
	i);
	samp_mysql_query(sql);
	return 1;
}
Код:
Estructura de tabla para la tabla `casas`
--

CREATE TABLE IF NOT EXISTS `casas` (
  `id` int(11) NOT NULL auto_increment,
  `EX` float NOT NULL,
  `EY` float NOT NULL,
  `EZ` float NOT NULL,
  `SX` float NOT NULL,
  `SY` float NOT NULL,
  `SZ` float NOT NULL,
  `Interior` int(11) NOT NULL,
  `Owned` int(11) NOT NULL,
  `Owner` varchar(255) NOT NULL,
  `Nivel` int(11) NOT NULL,
  `Costo` int(11) NOT NULL,
  `Locked` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=107 ;

--
-- Volcar la base de datos para la tabla `casas`
--

INSERT INTO `casas` (`id`, `EX`, `EY`, `EZ`, `SX`, `SY`, `SZ`, `Interior`, `Owned`, `Owner`, `Nivel`, `Costo`, `Locked`) VALUES
(1, -43.0591, -1846.39, 3.79557, 140.207, 1366.13, 1083.86, 5, 1, 'El Estado', 15, 750000, 1),
(2, 1298.74, -799.712, 84.1406, 140.207, 1366.13, 1083.86, 5, 0, 'El Estado', 15, 950000, 1);

-- --------------------------------------------------------

--
--
Код:
 Estructura de tabla para la tabla `headquarters`
--

CREATE TABLE IF NOT EXISTS `headquarters` (
  `id` int(11) NOT NULL auto_increment,
  `Nombre` varchar(255) NOT NULL,
  `Faccion` int(11) NOT NULL,
  `EPos_X` float NOT NULL,
  `EPos_Y` float NOT NULL,
  `EPos_Z` float NOT NULL,
  `SPos_X` float NOT NULL,
  `SPos_Y` float NOT NULL,
  `SPos_Z` float NOT NULL,
  `Interior` int(11) NOT NULL,
  `Locked` int(11) NOT NULL,
  `CajaFuerte` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Volcar la base de datos para la tabla `headquarters`
--

INSERT INTO `headquarters` (`id`, `Nombre`, `Faccion`, `EPos_X`, `EPos_Y`, `EPos_Z`, `SPos_X`, `SPos_Y`, `SPos_Z`, `Interior`, `Locked`, `CajaFuerte`) VALUES
(1, 'HQ Numero 1', 12, 1123.64, -2036.82, 69.8866, 2324.29, -1149.36, 1050.71, 12, 0, 0),
(2, 'HQ Numero 2', 23, 979.96, -676.8, 121.976, 225.995, 1021.44, 1084.02, 7, 0, 0);

-- --------------------------------------------------------

--
--
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)