Sup Darau misiju sistema, ir nezinau kaip man uzkraut informaciją.
new pMisijos[MAX_PLAYERS][Misijos][MAX_ETAPAI];
zodziu kiekviena misija turi kazkiek etapu tarkim žinom kad pirma misija turi 2 etapus, trečia turi 5.
pMisijos[playerid][0][0]
pMisijos[playerid][0][1]
...
pMisijos[playerid][1][0]
pMisijos[playerid][1][1]
pMisijos[playerid][1][2]
pMisijos[playerid][1][3]
pMisijos[playerid][1][4]
...
ir as jas saugau taip kad eitu uzkraut su sscanf pvz "1 0 0 1 1 0 1" tai kaip man uzkraut su sscanf jeigu as zinau kiek misija turi etapu? Tarkim stringas: "1 1 0 0 1", žinau kad pirma misija turi 3 etapus, antra 2.
pMisijos[playerid][0][0] = 1;
pMisijos[playerid][0][1] = 1;
pMisijos[playerid][0][2] = 0;
-- kita misija
pMisijos[playerid][1][0] = 0;
pMisijos[playerid][1][1] = 1;
Dėkui už pagalbą, nežinau ar suprasit, sunku paaiškint :D
Bebras prieš 10 metų
Krauk kaip masyvą!
new masyvas[3];
sscanf(string, "a<i>[3]", masyvas);
Arba tavo atvejo teks formatuoti tai kad gautum kažką panašaus:
new masyvacs[3], string[10];
format(string, sizeof(string), "a<i>[%d]", dydis);
sscanf(something, string, masyvas);
Yiin prieš 10 metų
Kodėl darai new pMisijos[MAX_PLAYERS][Misijos][MAX_ETAPAI];
, o ne new pMisijos[MAX_PLAYERS][Misijos];
, ir tuomet pMisijos[playerid][misijosID] = 5; // penktas etapas
?
Infrox prieš 10 metų
Bet tai jeigu aš turiu stringą "1 0 0 1 1 0 1", pirma misija turi 3 etapus, tai pirmus tris skaičius nuskaito, nustato, o pereinant į kitą misiją vėl tą patį stringą skaitys?
Bebras prieš 10 metų
Tai problema dar likusi? Jei taip, papasakok apie viską plačiau. Nes dar nelabai suprantu situaciją.
Infrox prieš 10 metų
Taip dar liko, tik noriu paklaust, kaip man padaryt kad išsaugotu kaip masyva, ta prasme jeigu stringas = "11000" tai
pMisijos[playerid][i][0] = 1;
pMisijos[playerid][i][1] = 1;
pMisijos[playerid][i][2] = 0;
pMisijos[playerid][i][3] = 0;
pMisijos[playerid][i][4] = 0;
Bebras prieš 10 metų
Tai tu nori iš string 11000 sudėti tuos skaičius į masyvą?
for(new j = 0; j < strlen(string); j++)
{
pMisijos[ playerid ][ i ][ j ] = (string[j] == "1") ? (1) : (0);
}
Infrox prieš 10 metų
Tavo kodas neveikia, error 033: array must be indexed (variable "-unknown-").
bandžiau šitaip:
for(new c = 0; c < strlen(LaikinasString); c++)
{
printf("LaikinasString[%d] = %s",c,LaikinasString[c]);
pMisijos[playerid][i][c] = (!strcmp(LaikinasString[c],"1")) ? (1) : (0);
}
stringas atrodo taip: "10110" bet printina:
[12:51:34] LaikinasString[0] = 10110
[12:51:34] LaikinasString[1] = 0110
[12:51:34] LaikinasString[2] = 110
[12:51:34] LaikinasString[3] = 10
[12:51:34] LaikinasString[4] = 0
Bebras prieš 10 metų
Taip printina nes %s rodo viską nuo pasirinkto indekso iki galo. Jei nori išprintinti vieną raidę, naudok %c.