[03:01:41] [debug] Run time error 4: "Array index out of bounds"
[03:01:41] [debug] Accessing element at index 4996 past array upper bound 999
[03:01:41] [debug] AMX backtrace:
[03:01:41] [debug] #0 001280b8 in ?? (0, 9015868, 0) from LeetHackz.amx
[03:01:41] [debug] #1 00044d30 in ?? (0, 9015812, 0) from LeetHackz.amx
[03:01:41] [debug] #2 00046bec in ?? (0, 9015812, 0, 0, 0, 8, 0, 9015812, 0, 0, ... <1073741813 arguments>) from LeetHackz.amx
[03:01:41] [debug] #3 000096c0 in public OnPlayerCommandText (0, 9015812) from LeetHackz.amx
CMD:buyfurniture(playerid,params[]) {
#pragma unused params
new fid;
if(sscanf(params,"i",fid)) return SendClientMessage(playerid,COLOR_RED,"Usage: /buyfurniture [ID]");
if(GetPlayerCash(playerid) < GetFurniturePrice(fid)) return SendClientMessage(playerid,COLOR_RED,"Not enough money");
if(AccInfo[playerid][HouseOwner] == 0) return SendClientMessage(playerid,COLOR_RED,"You dont own a house");
for(new x = 0; x < MAX_HOUSES;x++) {
if(HouseInfo[x][Owned] == 1) {
if(AccInfo[playerid][HouseOwner] == HouseInfo[x][HID]) {
HouseInfo[x][HouseFurniture] += 1;
new furnitureid = CreateDynamicObject(fid, HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ], 0,0,0, HouseInfo[x][VirtualWorld],HouseInfo[x][Interior]);
FurnitureData[furnitureid][FurnitureSlot] = HouseInfo[x][HouseFurniture];
FurnitureData[furnitureid][FurnitureMaster] = x;
FurnitureData[furnitureid][FurnitureModel] = fid;
FurnitureData[furnitureid][FurnitureX] = HouseInfo[x][ExitX];
FurnitureData[furnitureid][FurnitureY] = HouseInfo[x][ExitY];
FurnitureData[furnitureid][FurnitureZ] = HouseInfo[x][ExitZ];
FurnitureData[furnitureid][FurnitureInterior] = HouseInfo[x][Interior];
FurnitureData[furnitureid][FurnitureWorld] = HouseInfo[x][VirtualWorld];
new query[512];
mysql_format(mysql, query, sizeof(query),"INSERT INTO `furniture` (`Master`,`Slot`,`Model`,`X`,`Y`,`Z`,`RX`,`RY`,`RZ`,`Interior`,`World`) VALUES ('%i','%i','%i','%f','%f','%f','%f','%f','%f','%i','%i')",\
HouseInfo[x][HID],HouseInfo[x][HouseFurniture],fid,HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ],0.0,0.0,0.0,HouseInfo[x][Interior],HouseInfo[x][VirtualWorld]);
mysql_tquery(mysql, query, "OnFurnitureCreation", "i", furnitureid);
print(query);
}
}
}
return true;
}
new furnitureid = CreateDynamicObject(fid, HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ], 0,0,0, HouseInfo[x][VirtualWorld],HouseInfo[x][Interior]);
FurnitureData[furnitureid][FurnitureSlot] = HouseInfo[x][HouseFurniture];
FurnitureData[furnitureid][FurnitureMaster] = x;
FurnitureData[furnitureid][FurnitureModel] = fid;
FurnitureData[furnitureid][FurnitureX] = HouseInfo[x][ExitX];
FurnitureData[furnitureid][FurnitureY] = HouseInfo[x][ExitY];
FurnitureData[furnitureid][FurnitureZ] = HouseInfo[x][ExitZ];
FurnitureData[furnitureid][FurnitureInterior] = HouseInfo[x][Interior];
FurnitureData[furnitureid][FurnitureWorld] = HouseInfo[x][VirtualWorld];
I believe the problem is here:
PHP код:
|
if(HouseInfo[x][Owned] >= 1) { // It was == now its >=1
new furnitureid = CreateDynamicObject(fid, HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ], 0,0,0, HouseInfo[x][VirtualWorld],HouseInfo[x][Interior]);
printf("furnitureid = %d", furnitureid);
Print the value right after you declare the variable.
PHP код:
|
[05:16:34] furnitureid: 4996
CMD:buyfurniture(playerid,params[]) {
#pragma unused params
new fid;
if(sscanf(params,"i",fid)) return SendClientMessage(playerid,COLOR_RED,"Usage: /buyfurniture [ID]");
if(GetPlayerCash(playerid) < GetFurniturePrice(fid)) return SendClientMessage(playerid,COLOR_RED,"Not enough money");
if(AccInfo[playerid][HouseOwner] == 0) return SendClientMessage(playerid,COLOR_RED,"You dont own a house");
for(new x = 0; x < MAX_HOUSES;x++) {
if(HouseInfo[x][Owned] == 1) {
if(AccInfo[playerid][HouseOwner] == HouseInfo[x][HID]) {
HouseInfo[x][HouseFurniture] += 1;
new furnitureid = CreateDynamicObject(fid, HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ], 0,0,0, HouseInfo[x][VirtualWorld],HouseInfo[x][Interior]);
FurnitureData[furnitureid][FurnitureSlot] = HouseInfo[x][HouseFurniture];
FurnitureData[furnitureid][FurnitureMaster] = x;
FurnitureData[furnitureid][FurnitureModel] = fid;
FurnitureData[furnitureid][FurnitureX] = HouseInfo[x][ExitX];
FurnitureData[furnitureid][FurnitureY] = HouseInfo[x][ExitY];
FurnitureData[furnitureid][FurnitureZ] = HouseInfo[x][ExitZ];
FurnitureData[furnitureid][FurnitureInterior] = HouseInfo[x][Interior];
FurnitureData[furnitureid][FurnitureWorld] = HouseInfo[x][VirtualWorld];
new query[512];
mysql_format(mysql, query, sizeof(query),"INSERT INTO `furniture` (`Master`,`Slot`,`Model`,`X`,`Y`,`Z`,`RX`,`RY`,`RZ`,`Interior`,`World`) VALUES ('%i','%i','%i','%f','%f','%f','%f','%f','%f','%i','%i')",\
HouseInfo[x][HID],HouseInfo[x][HouseFurniture],fid,HouseInfo[x][ExitX],HouseInfo[x][ExitY],HouseInfo[x][ExitZ],0.0,0.0,0.0,HouseInfo[x][Interior],HouseInfo[x][VirtualWorld]);
mysql_tquery(mysql, query, "OnFurnitureCreation", "i", furnitureid);
print(query);
}
}
}
return true;
}
PHP код:
|
pawn Код:
Nothing more/nothing less. If you see warnings because of unused variables, you either need to use this or delete the variable. In case of ZCMD, it's not necessary to add the "unused" symbol at all.. |