11.09.2011, 09:59
hi i tried to make my own House System but it has lots of errors
Code
Errors
Line 50 is the most errors and this is the line
it says undefined Symbol but when i remove it it goes to the next line can u help plz
Line 73
a few Errors here but other than that the script is fine
Please Help Me
Regards Zonoya
Code
Код:
#include <a_samp> #include <zcmd> #include <streamer> new DB:database, DBResult:queryresult, fquery[300]; #define MAX_HOUSES 300 //MAX_HOUSES is currently 300. #define MAX_HOUSES_PER_PLAYER 2 //MAX_HOUSES_PER_PLAYER is currently 2 #define databasename "housedb.db" //The Databasename is currently housedb.db enum hinfo { owner[24], Hname[100], costprice, Float:EnterPos[3], Float:TelePos[3], sellprice, interiors, Text3D:textid, checkpointidx[2] }; new HouseInformation[MAX_HOUSES][hinfo], houseid; new InHouse[MAX_PLAYERS], InHouseCP[MAX_PLAYERS]; public OnFilterScriptInit() { database = db_open(databasename); db_query(database, "CREATE TABLE IF NOT EXISTS `HOUSEINFO` (housename varchar(51), houseowner varchar(25))"); CreateHouse(1, 2317.130615, 692.398498, 11.460937, 266.857757, 305.001586, 999.148437, 2, 1); CreateHouse(1, 2346.872802, 692.999267, 11.460937, 266.857757, 305.001586, 999.148437, 2, 1); CreateHouse(1, 2396.482666, 691.487060, 11.453125, 2196.850341, -1204.343261, 1049.023437, 6, 1); CreateHouse(1, 2398.476074, 735.344665, 11.460937, 2196.850341, -1204.343261, 1049.023437, 6, 1); CreateHouse(1, 2368.863525, 733.627502, 11.460937, 2196.850341, -1204.343261, 1049.023437, 6, 1); CreateHouse(1, 2013.253906, 731.041870, 11.453125, 266.857757, 305.001586, 999.148437, 5, 1); CreateHouse(1, 2449.826660, 742.588806, 11.460937, 266.857757, 305.001586, 999.148437, 5, 1); CreateHouse(1, 2449.662353, 714.210693, 11.468292, 266.857757, 305.001586, 999.148437, 5, 1); return 1; } public OnPlayerConnect(playerid) { InHouse[playerid] = -1; InHouseCP[playerid] = -1; return 1; } CreateHouse(CostP, Float:EnterX, Float:EnterY, Float:EnterZ, Float:TeleX, Float:TeleY, Float:TeleZ, Interiorx, SellP) CostP = the Cost price of the house Float:EnterX = The X entry point of the house, it will also be where the outside checkpoint will be (Ex: 1264.53433) Float:EnterY = The Y entry point of the house, it will also be where the outside checkpoint will be (Ex: 2625.6436) Float:EnterZ = The Z entry point of the house, it will also be where the outside checkpoint will be (Ex: 200.532) Float:TeleX = The X teleport that teleports the player into the interior (Ex: 432.4234) Float:TeleY = The Y teleport that teleports the player into the interior (Ex: 4216.4152) Float:TeleZ = The Z teleport that teleports the player into the interior (Ex: 10.53672) SellP = It's the selling price that the owner can sell the house for (Ex: 200000) Interiorx = The interior ID of the interior that we will teleport to. HouseInformation[houseid][costprice] = CostP; HouseInformation[houseid][EnterPos][0] = EnterX; HouseInformation[houseid][EnterPos][1] = EnterY; HouseInformation[houseid][EnterPos][2] = EnterZ; HouseInformation[houseid][TelePos][0] = TeleX; HouseInformation[houseid][TelePos][1] = TeleY; HouseInformation[houseid][TelePos][2] = TeleZ; HouseInformation[houseid][sellprice] = SellP; HouseInformation[houseid][interiors] = Interiorx; format(fquery, sizeof(fquery), "SELECT houseowner FROM HOUSEINFO WHERE housename = '%s'", HouseName); //Formats the SELECT query queryresult = db_query(database, fquery); //Query result variable has been used to query the string above. if(db_num_rows(queryresult) != 0) db_get_field_assoc(queryresult, "houseowner", HouseInformation[houseid][owner], 24); //Fetches the field information db_free_result(queryresult); HouseInformation[houseid][checkpointidx][0] = CreateDynamicCP(EnterX, EnterY, EnterZ, 1.0); //CreateDynamicCP(Float:x, Float:y, Float:z, Float:size); HouseInformation[houseid][checkpointidx][1] = CreateDynamicCP(TeleX, TeleY, TeleZ, 1.0, 15500000+houseid, Interiorx); //CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid, interiorid); if(!HouseInformation[houseid][owner][0]) format(fquery, sizeof(fquery), "House Name: %s \n House Price:$%d \n Sell Price: $%d", HouseName, CostP, SellP); //If there is nothing in the owners variable, we check if the first cell doesn't have a character. else if(HouseInformation[houseid][owner][0] != 0) format(fquery, sizeof(fquery), "House Name: %s \n Owner: %s", HouseName, HouseInformation[houseid][owner]); //If there is something in the owners variable we check if the first cell has a character. HouseInformation[houseid][textid] = CreateDynamic3DTextLabel(fquery, 0xFFFFFF, EnterX, EnterY, EnterZ + 0.5, 50.0); //CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0); houseid ++; //We go to the next free slot in our variable. return 1; } SELECT [VARIABLE] FROM [TABLENAME] WHERE [ANOTHER VARIABLE] = [A VALUE] VARIABLE = houseowner TABLENAME = HOUSEINFO ANOTHER VARIABLE = housename A VALUE = our house name. INSERT INTO [TABLENAME] ([FIELD1], [FIELD2]) VALUES ([VALUE1], [VALUE2]) TABLENAME - HOUSEINFO FIELD1 - housename FIELD2 - houseowner VALUE1 - Our housename value VALUE2 - Our houseowner value DELETE FROM [TABLENAME] WHERE [FIELD] = [VALUE] TABLENAME - HOUSEINFO FIELD - housename VALUE - the housename stock SetOwner(HouseName[], ownername[], houseids) { format(fquery, sizeof(fquery), "INSERT INTO `HOUSEINFO` (`housename`, `houseowner`) VALUES('%s', '%s')", HouseName, ownername); db_query(database, fquery); //Queries the SQLite database. format(HouseInformation[houseids][owner], 24, "%s", ownername); format(fquery, sizeof(fquery), "House Name: %s \n Owner: %s", HouseName, HouseInformation[houseids][owner]); UpdateDynamic3DTextLabelText(HouseInformation[houseids][textid], 0xFFFFFF, fquery); //Updates the text label. return 1; } stock DeleteOwner(HouseName[], houseids) { format(HouseInformation[houseids][owner], 24, "%s", "\0"); format(fquery, sizeof(fquery), "DELETE FROM `HOUSEINFO` WHERE `housename` = '%s'", HouseName); db_query(database, fquery); //Queries the SQLite database. format(fquery, sizeof(fquery), "House Name: %s \n House Price:$%d \n Sell Price: $%d", HouseName, HouseInformation[houseids][costprice], HouseInformation[houseids][sellprice]); UpdateDynamic3DTextLabelText(HouseInformation[houseids][textid], 0xFFFFFF, fquery); //Updates the text label. return 1; } public OnPlayerEnterDynamicCP(playerid, checkpointid) { for(new x; x<houseid; x++) //Loops through all current house ids. { if(HouseInformation[x][checkpointidx][0] == checkpointid) //If the entry checkpoint is entry checkpoint. { if(InHouse[playerid] != -1) { InHouse[playerid] = -1; //Sets the player to outside the house. return 1; } InHouseCP[playerid] = x; //Sets the InHouseCP variable. new Pname[24]; //Pname variable. GetPlayerName(playerid, Pname, 24); //Gets the players name. if(HouseInformation[x][owner][0] != 0 && !strcmp(Pname, HouseInformation[x][owner][0])) //The line above checks that the owner string has something in it, then it //Will compare it to our current player. { SetPlayerPos(playerid, HouseInformation[x][TelePos][0], HouseInformation[x][TelePos][1], HouseInformation[x][TelePos][2]); //Sets players position where x = houseid. SetPlayerInterior(playerid, HouseInformation[x][interiors]); //Sets players interior SetPlayerVirtualWorld(playerid, 15500000 + x); //Sets the virtual world //This is used if you want multiple houses per interior. //Sets the inhouse variable to the house he's in. } if(!HouseInformation[x][owner][0]) SendClientMessage(playerid, -1, "This house is for sale /buy to buy it!"); //If there is no owner, it will send a message telling the player to buy it :). return 1; //We do this so the loop doesn't continue after or it tries to go for more checkpoints //We could alternitivly use break; } if(HouseInformation[x][checkpointidx][1] == checkpointid) //If the player enters the house exit. { if(InHouse[playerid] == -1) { InHouse[playerid] = x; return 1; } SetPlayerPos(playerid, HouseInformation[x][EnterPos][0], HouseInformation[x][EnterPos][1], HouseInformation[x][EnterPos][2]); SetPlayerInterior(playerid, 0); //Sets the player back to interior 0 (Outside) SetPlayerVirtualWorld(playerid, 0); //Sets the players Virtual world to 0. return 1; //We do this so the loop doesn't continue after or it tries to go for more checkpoints //We could alternitivly use break; } } return 1; } public OnPlayerLeaveDynamicCP(playerid, checkpointid) { if(InHouseCP[playerid] != - 1) InHouseCP[playerid] = -1; //Sets the players InHouseCP variable to 0. return 1; } CMD:buy(playerid, params) { if(InHouseCP[playerid] == -1) return SendClientMessage(playerid, 0xFF0000, "You are not in any house checkpoints!"); if(HouseInformation[InHouseCP[playerid]][owner][0] != 0) return SendClientMessage(playerid, 0xFF0000, "This house has a owner"); if(GetPlayerMoney(playerid) < HouseInformation[InHouseCP[playerid]][costprice]) return SendClientMessage(playerid, 0xFF0000, "You don't have enough money!"); //Player has a lack of cash! new PlayerName[24]; GetPlayerName(playerid, PlayerName, 24); format(fquery, sizeof(fquery), "SELECT `houseowner` FROM `HOUSEINFO` WHERE `houseowner` = '%s'", PlayerName); //Formats the SELECT query queryresult = db_query(database, fquery); //Query result variable has been used to query the string above. if(db_num_rows(queryresult) == MAX_HOUSES_PER_PLAYER) return SendClientMessage(playerid, 0xFF0000, "You already have the max amount of houses"); //If the player has the max houses db_free_result(queryresult); //This is the point where the player can buy the house SetOwner(HouseInformation[InHouseCP[playerid]][Hname], PlayerName, InHouseCP[playerid]); //SetOwner(HouseName[], ownername[], houseids) SetPlayerPos(playerid, HouseInformation[InHouseCP[playerid]][TelePos][0], HouseInformation[InHouseCP[playerid]][TelePos][1], HouseInformation[InHouseCP[playerid]][TelePos][2]); //Sets players position where InHouseCP[playerid] = houseid. SetPlayerInterior(playerid, HouseInformation[InHouseCP[playerid]][interiors]); //Sets players interior SetPlayerVirtualWorld(playerid, 15500000 + InHouseCP[playerid]); //Sets the virtual world GivePlayerMoney(playerid, - HouseInformation[InHouseCP[playerid]][costprice]); GameTextForPlayer(playerid, "House ~r~Purchased!", 3000, 3); //Tells them they have purchased a house return 1; } CMD:sell(playerid, params) { if(InHouse[playerid] == -1) return SendClientMessage(playerid, 0xFF0000, "You have to be inside your house to sell it!"); new Pname[24]; GetPlayerName(playerid, Pname, 24); if(strcmp(HouseInformation[InHouse[playerid]][owner], Pname) != 0) return SendClientMessage(playerid, 0xFF0000, "This is not your house!"); //This is the point where the player can sell the house DeleteOwner(HouseInformation[InHouse[playerid]][Hname], InHouse[playerid]); //DeleteOwner(HouseName[], houseids) GivePlayerMoney(playerid, HouseInformation[InHouse[playerid]][sellprice]); SetPlayerPos(playerid, HouseInformation[InHouse[playerid]][EnterPos][0], HouseInformation[InHouse[playerid]][EnterPos][1], HouseInformation[InHouse[playerid]][EnterPos][2]); SetPlayerInterior(playerid, 0); //Sets the player back to interior 0 (Outside) SetPlayerVirtualWorld(playerid, 0); //Sets the players Virtual world to 0. InHouseCP[playerid] = InHouse[playerid]; GameTextForPlayer(playerid, "House ~g~sold!", 3000, 3); //Tells them they have sold a house return 1; }
Код:
C:\DOCUME~1\Bella\Desktop\SAMP03~2\FILTER~1\HOUSE_~2.PWN(50) : error 017: undefined symbol "the" C:\DOCUME~1\Bella\Desktop\SAMP03~2\FILTER~1\HOUSE_~2.PWN(50) : error 010: invalid function or declaration C:\DOCUME~1\Bella\Desktop\SAMP03~2\FILTER~1\HOUSE_~2.PWN(50 -- 73) : error 010: invalid function or declaration C:\DOCUME~1\Bella\Desktop\SAMP03~2\FILTER~1\HOUSE_~2.PWN(50 -- 73) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.
Код:
CostP = the Cost price of the house
Line 73
Код:
HouseInformation[houseid][checkpointidx][1] = CreateDynamicCP(TeleX, TeleY, TeleZ, 1.0, 15500000+houseid, Interiorx);
Please Help Me
Regards Zonoya