[04:43:48] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[04:43:48] [debug] Stack pointer (STK) is 0x1BF9820, heap pointer (HEA) is 0x1C55D14
[04:43:48] [debug] AMX backtrace:
[04:43:48] [debug] #0 002c39c8 in public cmd_muebles (playerid=0, params[]=@01c55d0c "") at C:\Users\Charlie\Desktop\Files\SAMP\gamemodes\NG.pwn:43009
[04:43:48] [debug] #1 native CallLocalFunction () from samp-server.exe
[04:43:48] [debug] #2 00031980 in public OnPlayerCommandText (playerid=0, cmdtext[]=@01c55ce8 "/muebles") at C:\Users\Charlie\Desktop\Files\SAMP\pawno2\include\zcmd.inc:102
CMD:muebles(playerid, params[])
{
static
houseid = -1;
if ((houseid = House_Inside(playerid)) != -1 && House_IsOwner(playerid, houseid))
{
new // (( LINE 43009 )) << Error
count = 0,
string[MAX_FURNITURE * 32];
for (new i = 0; i != MAX_FURNITURE; i ++) if (count < MAX_HOUSE_FURNITURE && FurnitureData[i][furnitureExists] && FurnitureData[i][furnitureHouse] == houseid) {
ListedFurniture[playerid][count++] = i;
format(string, sizeof(string), "%s%s (%.2f metros)\n", string, FurnitureData[i][furnitureName], GetPlayerDistanceFromPoint(playerid, FurnitureData[i][furniturePos][0], FurnitureData[i][furniturePos][1], FurnitureData[i][furniturePos][2]));
}
if (count) {
Dialog_Show(playerid, ListedFurniture, DIALOG_STYLE_LIST, "Muebles de la casa", string, ">", "Cancelar");
}
else SendErrorMessage(playerid, "йsta casa no tiene muebles.");
}
else SendErrorMessage(playerid, "no estбs en el interior de tu casa.");
return 1;
}
enum furnitureData {
furnitureID,
furnitureHouse,
furnitureExists,
furnitureModel,
furnitureName[32],
Float:furniturePos[3],
Float:furnitureRot[3],
furnitureObject
};
#define MAX_FURNITURE (2000) new FurnitureData[MAX_FURNITURE][furnitureData];
string[MAX_FURNITURE * 32]
[12:15:10] [debug] Run time error 4: "Array index out of bounds" [12:15:10] [debug] AMX backtrace: [12:15:10] [debug] #0 00249158 in public dialog_ListedFurniture (playerid=0, response=0, listitem=0, inputtext[]=@01cf2140 "Frame 3 (3.28 metros)") at C:\Users\Charlie\Desktop\Files\SAMP\gamemodes\NG.pwn:32368 [12:15:10] [debug] #1 native CallLocalFunction () from samp-server.exe [12:15:10] [debug] #2 0003d94c in public OnDialogResponse (playerid=0, dialogid=32700, response=0, listitem=0, inputtext[]=@01cf20e8 "Frame 3 (3.28 metros)") at C:\Users\Charlie\Desktop\Files\SAMP\pawno2\include\easyDialog.inc:131
Dialog:ListedFurniture(playerid, response, listitem, inputtext[])
{
if (response)
{
new id = House_Inside(playerid);
if (id != -1 && House_IsOwner(playerid, id))
{
PlayerData[playerid][pEditFurniture] = ListedFurniture[playerid][listitem];
Dialog_Show(playerid, FurnitureList, DIALOG_STYLE_LIST, FurnitureData[PlayerData[playerid][pEditFurniture]][furnitureName], "Editar mueble\nRecoger mueble\nEliminar mueble", ">", "Cancel");
}
}
for (new i = 0; i != MAX_FURNITURE; i ++) // (( Error )) <<<
{
ListedFurniture[playerid][i] = -1;
}
return 1;
}
new ListedFurniture[MAX_PLAYERS][MAX_HOUSE_FURNITURE];
|
Try for (new i = 0; i < MAX_FURNITURE; i++)
Anyway, instead of displaying everything in one big dialog, do as Vince said, pagination. Split it up into pages. Like show 20 furniture per page. |
//You Script
#pragma dynamic (128*1024) //128 KB