1. Nie możesz, bo cała tablica musi być tego samego typu. Za to możesz konwertować tekst na liczbę - https://amxx.pl/doku...1372/str-to-num
2. Obliczanie procentów to czysta matematykanew procenty = (liczbaPodlozonychBomb / liczbaWymaganychBomb) * 100; // bez ułamków new Float:procenty = floatmul(floatdiv(float(liczbaPodlozonychBomb), float(liczbaWymaganychBomb)), 100); // z ułamkami (pamiętaj aby sformatować na wyjściu w celu uniknięcia okresu np. 1/3)+ ograniczenieif (missionProgress[id] < 100) missionProgress[id]++; else // koniec misji
Po zastosowaniu Twojego kodu mam błędy:
error 033: array must be indexed (variable "missionData") warning 204: symbol is assigned a value that is never used: "text" //if (missionSelected[id] >= 0) { new procent = (missionProgress[id] / missionData[missionSelected[id]][3]) * 100; set_hudmessage(0, 255, 0, 0.80, -1.0, 0, 0.0, 1.0) ShowSyncHudMsg(id, gSyncHudObj, "[Postep: %i%%]", procent) }format(vaultData, 255, "%i", number)
nvault_get(gVault, vaultKey, vaultData, 255)
Formatujesz vaultData, a potem i tak jest to nadpisywane przez nvault_get(). Kombinuj dalej
Ps. Przy wczytywaniu ciągu znaków do zmiennych musisz zarezerwować komórkę na terminator ciągu znaków (stringa) - zwiększ wielkość tablic przy deklaracji o +1.
Nie rozumiem. Mógłbyś trochę jaśniej ?
1. Z tego co widzę to missionData ma 3 wymiary, a ty używasz tylko 2.
2. Jeżeli spodziewasz się, że twój string będzie miał rozmiar n to zadeklaruj jego rozmiar n+1, bo potrzebujesz jeszcze przechować tzw. null terminator. Symbol, dzięki któremu wiadomo gdzie się kończy tekst - https://en.wikipedia...rminated_string