ich komme sehr gut voran, aber ich hab da ein problem, ich hoffe irgendwer der hier mal reinschaut kann mir helfen.
Code:
public admin_showstatistic(HLCommand,HLData,HLUserName,UserIndex) {
new Data[2][250];
new UserName[MAX_NAME_LENGTH];
new LineData[MAX_DATA_LENGTH];
new Outstring[255] = "Top voted maps:^n";
new Line = 1;
new i;
convert_string(HLUserName,UserName,MAX_NAME_LENGTH);
while(readfile("addons/adminmod/statistics.txt",LineData,Line,MAX_DATA_LENGTH) == 1) {
Data[0][Line-1] = Line;
Data[1][Line-1] = strtonum(LineData[strchr(LineData,' ')+1]);
Line++;
}
Sort(Data,Line-1);
for(i=0;i<g_Statistics && i<filesize("addons/adminmod/statistics.txt");i++) {
readfile("addons/adminmod/statistics.txt",LineData,Data[0][i],MAX_DATA_LENGTH);
snprintf(LineData,MAX_DATA_LENGTH,"^n %i. %s",i+1,LineData);
strcat(Outstring,LineData,255);
}
messageex(UserName,Outstring,print_tty);
return PLUGIN_HANDLED;
}
Sort(Data[2][],iNumber) {
new i,j,k;
new Buffer[2];
for(i=1;i<iNumber;i++) {
for(j=0;j<i;j++) {
if(Data[1][i] > Data[1][j]) {
Buffer[0] = Data[0][i];
Buffer[1] = Data[1][i];
for(k=i-1;k>=j;k--) {
Data[0][k+1] = Data[0][k];
Data[1][k+1] = Data[1][k];
}
Data[0][j] = Buffer[0];
Data[1][j] = Buffer[j];
}
}
}
}
dieser befehl führt zum AMX_RUNTIME_ERROR #4
bugblatters tutorial sagt dazu:
AMX_ERR_BOUNDS
This means you are referring to an element outside the bounds of an array - e.g. The following will generate this error:
Code:
new arr[10];
for (i=0;i<20;i++) {
arr[i] = 1;
}
wenn g_Statistics kleiner als die zeilenanzahl in der statistics.txt ist.
ich würds ja selber machen, aber ich krieg immer kopfschmerzen, wenn ich die vielen schleifen zu lange angucke.
ich frag mich wie ich damals überhaupt darauf gekommen bin. jedenfalls hab ich keinen plan was falsch ist.