Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×
  • 0

Question

Posted

Salut, am vazut in logurile serverului urmatoarele erori:

[16:41:50] [debug] Run time error 4: "Array index out of bounds"
[16:41:50] [debug]  Accessing element at negative index -1
[16:41:50] [debug] AMX backtrace:
[16:41:50] [debug] #0 0020bb6c in ?? (... <5 arguments>) at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\gamemodes\B-HOOD.pwn:12113
[16:41:50] [debug] #1 0003321c in public OnDialogResponse (playerid=2, dialogid=86, response=1, listitem=-1, inputtext[]=@032980ac "#. Name") at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\pawno\include\YSI\y_hooks/impl.inc:2273
Linia 12113 este aceasta: format(sName[playerid], 256, Selected[playerid][listitem]); si face parte din acest dialog de mai jos.

case DIALOG_MEMBERS: {
            if(!response) return true;
            if(PlayerInfo[playerid][pRank] < 6) return SCM(playerid, COLOR_LGREEN, "Eroare: Ai nevoie de rank 6+ pentru a putea merge mai departe!");
            new szQuery[256];
            format(sName[playerid], 256, Selected[playerid][listitem]);    
            format(szQuery, sizeof(szQuery), "SELECT * FROM `users` WHERE `name`='%s'", sName[playerid]);
            new Cache: result = mysql_query(SQL, szQuery);
            cache_get_field_content(0, "Rank", string);
            new rank = strval(string);
            if(rank == 7)  return SCM(playerid, COLOR_LGREEN, "Eroare: Nu se poate modifica ceva unui lider!");
            cache_delete(result);                        
            format(string, sizeof(string), "Member: %s", sName[playerid]);
            ShowPlayerDialog(playerid, DIALOG_MEMBERS+1, DIALOG_STYLE_LIST, string, "Raport\nRank\nFaction warn\nUn faction warn\nUninvite", "Ok", "Back");
        }

Linia 9286 este aceasta: new Float:vehx, Float:vehy, Float:vehz, idd = PlayerInfo[playerid][pCarKey][listitem]; si face parte din dialogul de mai jos.

case DIALOG_FINDCAR: {
            if(!response)
                return true;

            new Float:vehx, Float:vehy, Float:vehz, idd = PlayerInfo[playerid][pCarKey][listitem];
            GetVehiclePos(CarInfo[idd][Spawned], vehx, vehy, vehz);
            SetPlayerCheckpointEx(playerid, vehx, vehy, vehz, 3.0);
            CP[playerid] = 53;
        }

[18:01:54] [debug] Run time error 4: "Array index out of bounds"
[18:01:54] [debug]  Accessing element at negative index -1
[18:01:54] [debug] AMX backtrace:
[18:01:54] [debug] #0 001d7830 in ?? (... <5 arguments>) at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\gamemodes\B-HOOD.pwn:9286
[18:01:54] [debug] #1 0003321c in public OnDialogResponse (playerid=2, dialogid=748, response=1, listitem=-1, inputtext[]=@032980ac "(Occupied) Monster") at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\pawno\include\YSI\y_hooks/impl.inc:2273

Linia 12360 este aceasta: new stringg[2000], idd = PlayerInfo[playerid][pCarKey][listitem]; si face parte din dialogul de mai jos.

case DIALOG_GARAGE: {
            if(!response) return true;
            new stringg[2000], idd = PlayerInfo[playerid][pCarKey][listitem];
            listitemm[playerid] = idd;
            strcat(stringg,"Option\tMore details.\n");
            strcat(stringg,"Vehicle Info\tSee vehicle details.\n");
            strcat(stringg,"Find Vehicle\tLocate your vehicle.\n"); 
            strcat(stringg,"Tow vehicle\tRespawn your vehicle.\n");
            if(CarInfo[idd][Spawned] != 0) strcat(stringg,"Despawn\tDestroy your vehicle.\n");
            else strcat(stringg,"Spawn\tSpawn your vehicle.\n");
            strcat(stringg,"Debug\tSpawn your vehicle in another locations.\n"); 
            strcat(stringg,"Sell vehicle\tSell vehicle to Dealership.\n");
            strcat(stringg,"Buy insurance\tBuy insurance points.\n");
            strcat(stringg, strlen(CarInfo[idd][cText]) < 3 ? "Upgrade To VIP Vehicle\t{51dd32}300 premium points.\n" : "Upgrade To VIP Vehicle\t{cf2424}300 premium points.\n");
            strcat(stringg, CarInfo[idd][cVip] != 1 ? "Upgrade To VIP PLUS\t{51dd32}500 premium points.\n" : "Teleport Vehicle\t{32e4ea}Get vehicle to you.\n");
            strcat(stringg, !CarInfo[idd][cRainBow] ? "Upgrade To rainbow vehicle\t{51dd32}300 premium points.\n" : "Upgrade to rainbow vehicle\t{cf2424}300 premium points.\n");
            strcat(stringg,"{FF0000}Remove tuning\t{FFFFFF}Remove tuning from your vehicle.");
            if(CarInfo[idd][Confiscated] == 1) strcat(stringg, "\n{FFFFFF}Pay fine to TTC.");
            ShowPlayerDialog(playerid, DIALOG_GARAGE1, DIALOG_STYLE_TABLIST_HEADERS, "Options", stringg, "Select", "Cancel");
        }

[19:14:12] [debug]  Accessing element at negative index -1
[19:14:12] [debug] AMX backtrace:
[19:14:12] [debug] #0 00210f00 in ?? (... <5 arguments>) at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\gamemodes\B-HOOD.pwn:12360
[19:14:12] [debug] #1 0003321c in public OnDialogResponse (playerid=1, dialogid=82, response=1, listitem=-1, inputtext[]=@032980ac "Vehicul") at C:\Users\crist\Desktop\HPQ123 samp gamemode actual cu tot ce trebuie\pawno\include\YSI\y_hooks/impl.inc:2273
 

8 answers to this question

Recommended Posts

  • 0
Posted
listitem	The ID of the list item selected by the player (starts at 0) (only if using a list style dialog, otherwise will be -1).

De pe wiki. Cel mai bine in aceste dialoguri poti face o verificare de genul dupa ce verifici response si inainte sa folosesti listeitem in array

if (listitem == -1)
	return 0; // Eventual un mesaj ca selectarea a esuat

 

  • 0
Posted
Acum 10 ore, iSkull a spus:

Comanda pentru DIALOG_MEMBERS?

YCMD:members(playerid, params[], help) return ShowFactionMembers(playerid);
stock ShowFactionMembers(playerid) {
    if(aspam[playerid] > 0) return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", aspam[playerid]);
    if(PlayerInfo[playerid][pMember] == 0) return true;
    new szQuery[256], string[180], MemberString[1024], szResult[180], days[180];
    new name[180], lastl[180], rank[180], fw[180], TitleString[180], tmembers, onmembers;
    format(szQuery, sizeof(szQuery), "SELECT * FROM `users` WHERE `users`.`Member` = '%d' ORDER BY `users`.`Rank` DESC LIMIT 20", PlayerInfo[playerid][pMember]);
    new Cache: result = mysql_query(SQL, szQuery);
    strcat(MemberString, "#. Name\tRank - FW\tStatus\tDays\n");
    for(new i, j = cache_num_rows(); i != j; ++i)
    {
        cache_get_field_content(i, "name", szResult); format(name, 256, szResult);
        cache_get_field_content(i, "lastOn", szResult); format(lastl, 256, szResult);
        cache_get_field_content(i, "Rank", szResult); format(rank, 256, szResult);
        cache_get_field_content(i, "FWarn", szResult);  format(fw, 256, szResult);
        cache_get_field_content(i, "Days", szResult);  format(days, 256, szResult);
        
        format(Selected[playerid][tmembers], MAX_PLAYER_NAME, name);
        new userID = GetPlayerID(name);    
        
        if(userID != INVALID_PLAYER_ID) {
            onmembers++;
            format(string, sizeof(string), "%d. %s (%d)\t%d - %s/3\tOnline\t%s\n", tmembers+1, name, userID, PlayerInfo[userID][pRank], fw, days);
            strcat(MemberString, string, sizeof(MemberString));
        }
        else {
            format(string, sizeof(string), "%d. %s\t%s - %s/3\t%s\t%s\n", tmembers+1, name, rank, fw, lastl, days);
            strcat(MemberString, string, sizeof(MemberString));
        }
        tmembers++;
    }
    cache_delete(result);
    format(TitleString, sizeof(TitleString), "Members (%d/%d)", onmembers, tmembers);
    ShowPlayerDialog(playerid, DIALOG_MEMBERS, DIALOG_STYLE_TABLIST_HEADERS, TitleString, MemberString, "Ok", "Exit");
    return true;
}

  • 0
Posted
Acum 5 ore, Banditul a spus:

listitem	The ID of the list item selected by the player (starts at 0) (only if using a list style dialog, otherwise will be -1).

De pe wiki. Cel mai bine in aceste dialoguri poti face o verificare de genul dupa ce verifici response si inainte sa folosesti listeitem in array


if (listitem == -1)
	return 0; // Eventual un mesaj ca selectarea a esuat

 

Ok, multumesc. Voi incerca acum

  • 0
Posted
Acum 20 ore, Banditul a spus:

listitem	The ID of the list item selected by the player (starts at 0) (only if using a list style dialog, otherwise will be -1).

De pe wiki. Cel mai bine in aceste dialoguri poti face o verificare de genul dupa ce verifici response si inainte sa folosesti listeitem in array


if (listitem == -1)
	return 0; // Eventual un mesaj ca selectarea a esuat

 

Niciodata in OnDialogResponse nu o sa ai listitem pe -1, el pleaca mereu de la 0, problema e din variabila

 

Acum 15 ore, TheGodfather a spus:

Ok, multumesc. Voi incerca acum

Arata cum ai definit Selected

  • 0
Posted
Acum 15 minute, iSkull a spus:

Niciodata in OnDialogResponse nu o sa ai listitem pe -1, el pleaca mereu de la 0, problema e din variabila

 

Arata cum ai definit Selected

new Selected[MAX_PLAYERS][50][180];

La asta te referi? E sus de tot in gamemode.

  • 0
Posted

Fa enum

 

enum selected_info

{

sName[MAX_PLAYER_NAME], sID

}

new Selected[MAX_PLAYERS][99][selected_info];

 

in loc de  format(Selected[playerid][tmembers], MAX_PLAYER_NAME, name); pui format(Selected[playerid][tmembers][sName], MAX_PLAYER_NAME, name);

 

  • 0
Posted
Acum 6 minute, iSkull a spus:

Fa enum

 

enum selected_info

{

sName[MAX_PLAYER_NAME], sID

}

new Selected[MAX_PLAYERS][99][selected_info];

 

in loc de  format(Selected[playerid][tmembers], MAX_PLAYER_NAME, name); pui format(Selected[playerid][tmembers][sName], MAX_PLAYER_NAME, name);

 

Momentan am pus verificari cum mi-a spus Banditul, daca tot o sa apara eroarea voi incerca cum ai spus tu, iSkull.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.