command(createhouse, playerid, params[])
{
new Usage[128], string[128];
if(sscanf(params, "z", Usage))
{
if(AdminLoggedIn[playerid] == 1 && Player[playerid][Adminlevel] >= 6)
{
SendClientMessage(playerid, WHITE, "SYNTAX: /createhouse [usage]");
SendClientMessage(playerid, GREY, "Usage: Interior, Exterior, Spawn or Complete.");
}
else
{
RemoveTextMessage(playerid);
TextDrawShowForPlayer(playerid, Text:CantCommand);
SetTimerEx("RemoveTextMessage", 3500, false, "d", playerid);
}
}
else
{
if(AdminLoggedIn[playerid] == 1 && Player[playerid][Adminlevel] >= 6)
{
if(strcmp(Usage, "exterior", true) == 0)
{
Player[playerid][HouseExterior]++;
Player[playerid][hExtID] = GetPlayerInterior(playerid);
GetPlayerFacingAngle(playerid, Player[playerid][hExtA]);
GetPlayerPos(playerid, Player[playerid][hExtX], Player[playerid][hExtY], Player[playerid][hExtZ]);
format(string, sizeof(string), "Exterior set! (X: %f, Y: %f, Z: %f).", Player[playerid][hExtX], Player[playerid][hExtY], Player[playerid][hExtZ]);
SendClientMessage(playerid, WHITE, string);
}
if(strcmp(Usage, "interior", true) == 0)
{
Player[playerid][HouseInterior]++;
Player[playerid][hIntID] = GetPlayerInterior(playerid);
GetPlayerFacingAngle(playerid, Player[playerid][hIntA]);
GetPlayerPos(playerid, Player[playerid][hIntX], Player[playerid][hIntY], Player[playerid][hIntZ]);
format(string, sizeof(string), "Interior set! (X: %f, Y: %f, Z: %f).", Player[playerid][hIntX], Player[playerid][hIntY], Player[playerid][hIntZ]);
SendClientMessage(playerid, WHITE, string);
}
if(strcmp(Usage, "spawn", true) == 0)
{
Player[playerid][HouseSpawn]++;
Player[playerid][hSpaID] = GetPlayerInterior(playerid);
GetPlayerFacingAngle(playerid, Player[playerid][hSpaA]);
GetPlayerPos(playerid, Player[playerid][hSpaX], Player[playerid][hSpaY], Player[playerid][hSpaZ]);
format(string, sizeof(string), "Spawn possition set! (X: %f, Y: %f, Z: %f).", Player[playerid][hSpaX], Player[playerid][hSpaY], Player[playerid][hSpaZ]);
SendClientMessage(playerid, WHITE, string);
}
if(strcmp(Usage, "complete", true) == 0)
{
if(Player[playerid][HouseInterior] > 0 || Player[playerid][HouseExterior] > 0)
{
new NewHouseID = SpawnedHouses+1;
if(NewHouseID >= MAX_HOUSES)
{
SendClientMessage(playerid, RED, "> Too many houses are currently spawned!");
}
else
{
format(Houses[NewHouseID][hAddress], 255, "None");
format(Houses[NewHouseID][hType], 255, "Unknown");
Houses[NewHouseID][hInteriorID] = Player[playerid][hIntID];
Houses[NewHouseID][hExteriorID] = Player[playerid][hExtID];
Houses[NewHouseID][hSpawnID] = Player[playerid][hSpaID];
Houses[NewHouseID][hInteriorX] = Player[playerid][hIntX];
Houses[NewHouseID][hInteriorY] = Player[playerid][hIntY];
Houses[NewHouseID][hInteriorZ] = Player[playerid][hIntZ];
Houses[NewHouseID][hInteriorA] = Player[playerid][hIntA];
Houses[NewHouseID][hExteriorX] = Player[playerid][hExtX];
Houses[NewHouseID][hExteriorY] = Player[playerid][hExtY];
Houses[NewHouseID][hExteriorZ] = Player[playerid][hExtZ];
Houses[NewHouseID][hExteriorA] = Player[playerid][hExtA];
Houses[NewHouseID][hSpawnX] = Player[playerid][hSpaX];
Houses[NewHouseID][hSpawnY] = Player[playerid][hSpaY];
Houses[NewHouseID][hSpawnZ] = Player[playerid][hSpaZ];
Houses[NewHouseID][hSpawnA] = Player[playerid][hSpaA];
Player[playerid][HouseExterior]--;
Player[playerid][HouseInterior]--;
Player[playerid][HouseSpawn]--;
SendClientMessage(playerid, NICESKY, "Successfully created house, don't forget to /sethouseprice, /sethouseaddress, /sethousetype!");
SetPlayerInterior(playerid, Houses[NewHouseID][hExteriorID]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, Houses[NewHouseID][hExteriorX], Houses[NewHouseID][hExteriorY], Houses[NewHouseID][hExteriorZ]);
SavedHouses++;
SaveHouse(NewHouseID);
}
}
else
{
SendClientMessage(playerid, WHITE, "> You must select an exterior and an interior first!");
}
}
}
else
{
RemoveTextMessage(playerid);
TextDrawShowForPlayer(playerid, Text:CantCommand);
SetTimerEx("RemoveTextMessage", 3500, false, "d", playerid);
}
}
return 1;
}
stock SaveHouse(houseid)
{
new query[2000];
format(query, sizeof(query), "UPDATE `Houses` SET `hInteriorID` = %d, `hInteriorX` = '%f', `hInteriorY` = '%f', `hInteriorZ` = '%f', `hInteriorA` = '%f', `hExteriorID` = %d, `hExteriorX` = '%f', `hExteriorY` = '%f', `hExteriorZ` = '%f', `hExteriorA` = '%f', `hSpawnID` = %d, `hSpawnX` = '%f', `hSpawnY` = '%f', `hSpawnZ` = '%f', `hSpawnA` = '%f', ",
Houses[houseid][hInteriorID],
Houses[houseid][hInteriorX],
Houses[houseid][hInteriorY],
Houses[houseid][hInteriorZ],
Houses[houseid][hInteriorA],
Houses[houseid][hExteriorID],
Houses[houseid][hExteriorX],
Houses[houseid][hExteriorY],
Houses[houseid][hExteriorZ],
Houses[houseid][hExteriorA],
Houses[houseid][hSpawnID],
Houses[houseid][hSpawnX],
Houses[houseid][hSpawnY],
Houses[houseid][hSpawnZ],
Houses[houseid][hSpawnA]);
format(query, sizeof(query), "%s`hOwner` = '%s', `hAddress` = '%s', `HousePrice` = %d, `hLockStatus` = %d, `hType` = '%s', `hLastLoginDate` = %d WHERE `HouseID` = %d",
query,
Houses[houseid][hOwner],
Houses[houseid][hAddress],
Houses[houseid][HousePrice],
Houses[houseid][hLockStatus],
Houses[houseid][hType],
Houses[houseid][hLastLoginDate],
houseid);
mysql_query(query);
return 1;
}
forward SaveHouseCallback(houseid, playerid);
public SaveHouseCallback(houseid, playerid)
{
new
rows;
if(rows == 1)
{
//SendClientMessage(SavingVehiclePlayerID, RED, "This Vehicle already exists");
SendClientMessage(playerid, RED, "This House already exists!");
}
else if(rows == 0)
{
new query[2000];
format(query, sizeof(query), "INSERT INTO `Houses` (`hInteriorID`, `hInteriorX`, `hInteriorY`, `hInteriorZ`, `hInteriorA`, `hExteriorID`, `hExteriorX`, `hExteriorY`, `hExteriorZ`, `hExteriorA`, `hSpawnID`, ");
format(query, sizeof(query), "%s`hSpawnX`, `hSpawnY`, `hSpawnZ`, `hSpawnA`, `hOwner`, `hAddress`, `HousePrice`, `hLockStatus`, `hType`) VALUES ", query);
format(query, sizeof(query), "%s(%d, '%f', '%f', '%f', '%f', %d, '%f', '%f', '%f', '%f', %d, '%f', '%f', '%f', '%f', '%s', '%s', %d, %d, '%s')",
query, Houses[houseid][hInteriorID],
Houses[houseid][hInteriorX],
Houses[houseid][hInteriorY],
Houses[houseid][hInteriorZ],
Houses[houseid][hInteriorA],
Houses[houseid][hExteriorID],
Houses[houseid][hExteriorX],
Houses[houseid][hExteriorY],
Houses[houseid][hExteriorZ],
Houses[houseid][hExteriorA],
Houses[houseid][hSpawnID],
Houses[houseid][hSpawnX],
Houses[houseid][hSpawnY],
Houses[houseid][hSpawnZ],
Houses[houseid][hSpawnA],
Houses[houseid][hOwner],
Houses[houseid][hAddress],
-1,
1,
Houses[houseid][hType]);
mysql_queryM(query, "DefaultCallback");
new query2[400];
format(query2, sizeof(query2), "SELECT * FROM `Houses` WHERE `HouseID` = %d", houseid); // Selects all the information from the table
mysql_queryM(query2,"LoadHousesCallback", "d", houseid);
}
else
{
//SendClientMessage(SavingVehiclePlayerID, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
SendClientMessage(playerid, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
}
return 1;
}
Now it creates because you have INSERT INTO, which is for creating.
You could check in the database if there are results already and if there are, format the update query, if there aren't format the create query. This is the only way to use both in 1 stock |
stock SaveHouse(houseid)
{
new query[2000];
format(query, sizeof(query), "UPDATE `Houses` SET `hInteriorID` = %d, `hInteriorX` = '%f', `hInteriorY` = '%f', `hInteriorZ` = '%f', `hInteriorA` = '%f', `hExteriorID` = %d, `hExteriorX` = '%f', `hExteriorY` = '%f', `hExteriorZ` = '%f', `hExteriorA` = '%f', `hSpawnID` = %d, `hSpawnX` = '%f', `hSpawnY` = '%f', `hSpawnZ` = '%f', `hSpawnA` = '%f', ",
Houses[houseid][hInteriorID],
Houses[houseid][hInteriorX],
Houses[houseid][hInteriorY],
Houses[houseid][hInteriorZ],
Houses[houseid][hInteriorA],
Houses[houseid][hExteriorID],
Houses[houseid][hExteriorX],
Houses[houseid][hExteriorY],
Houses[houseid][hExteriorZ],
Houses[houseid][hExteriorA],
Houses[houseid][hSpawnID],
Houses[houseid][hSpawnX],
Houses[houseid][hSpawnY],
Houses[houseid][hSpawnZ],
Houses[houseid][hSpawnA]);
format(query, sizeof(query), "%s`hOwner` = '%s', `hAddress` = '%s', `HousePrice` = %d, `hLockStatus` = %d, `hType` = '%s', `hLastLoginDate` = %d WHERE `HouseID` = %d",
query,
Houses[houseid][hOwner],
Houses[houseid][hAddress],
Houses[houseid][HousePrice],
Houses[houseid][hLockStatus],
Houses[houseid][hType],
Houses[houseid][hLastLoginDate],
houseid);
mysql_query(query);
return 1;
}
forward SaveHouseCallback(houseid, playerid);
public SaveHouseCallback(houseid, playerid)
{
new
rows;
if(rows == 1)
{
//SendClientMessage(SavingVehiclePlayerID, RED, "This Vehicle already exists");
SendClientMessage(playerid, RED, "This House already exists!");
}
else if(rows == 0)
{
new query[2000];
format(query, sizeof(query), "INSERT INTO `Houses` (`hInteriorID`, `hInteriorX`, `hInteriorY`, `hInteriorZ`, `hInteriorA`, `hExteriorID`, `hExteriorX`, `hExteriorY`, `hExteriorZ`, `hExteriorA`, `hSpawnID`, ");
format(query, sizeof(query), "%s`hSpawnX`, `hSpawnY`, `hSpawnZ`, `hSpawnA`, `hOwner`, `hAddress`, `HousePrice`, `hLockStatus`, `hType`) VALUES ", query);
format(query, sizeof(query), "%s(%d, '%f', '%f', '%f', '%f', %d, '%f', '%f', '%f', '%f', %d, '%f', '%f', '%f', '%f', '%s', '%s', %d, %d, '%s')",
query, Houses[houseid][hInteriorID],
Houses[houseid][hInteriorX],
Houses[houseid][hInteriorY],
Houses[houseid][hInteriorZ],
Houses[houseid][hInteriorA],
Houses[houseid][hExteriorID],
Houses[houseid][hExteriorX],
Houses[houseid][hExteriorY],
Houses[houseid][hExteriorZ],
Houses[houseid][hExteriorA],
Houses[houseid][hSpawnID],
Houses[houseid][hSpawnX],
Houses[houseid][hSpawnY],
Houses[houseid][hSpawnZ],
Houses[houseid][hSpawnA],
Houses[houseid][hOwner],
Houses[houseid][hAddress],
-1,
1,
Houses[houseid][hType]);
mysql_queryM(query, "DefaultCallback");
new query2[400];
format(query2, sizeof(query2), "SELECT * FROM `Houses` WHERE `HouseID` = %d", houseid); // Selects all the information from the table
mysql_queryM(query2,"LoadHousesCallback", "d", houseid);
}
else
{
//SendClientMessage(SavingVehiclePlayerID, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
SendClientMessage(playerid, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
}
return 1;
}
Can someone maybe help me out? This is mine house system but it doesn't save in the mysql... Thanks for your advise
PHP код:
|