Guten Abend,
ich habe ein kleines Problem..
Sobald ich den Server starte, ist es nach ca. 2 Stunden allen Spielern nicht mehr möglich den Server zu betreten noch
irgendwelche Befehle auszuführen. Wenn sich dann Spieler ausloggen, werden diese trotz dessen als eingelogt in der Liste angezeigt..
So als würde alles hängen bleiben..
Das Plugin Crashdetecte läuft auch schon bereits und meldet mehrmals NUR diesen Fehler:
[18:02:09] [debug] Run time error 4: "Array index out of bounds"
[18:02:09] [debug] Accessing element at negative index -400
[18:02:09] [debug] AMX backtrace:
[18:02:09] [debug] #0 000da0ec in public OnPlayerUpdateTacho () at C:\Users\Administrator\Desktop\ivn39dnw\neu12.pwn:7200
[18:02:09] [debug] #1 00014754 in public HauptTimer () at C:\Users\Administrator\Desktop\ivn39dnw\neu12.pwn:1946
Das ist die direkte Zeile 7200 wo der Fehler gemeldet wird:
format(string, sizeof(string), "~b~%s~n~~n~~b~KM/H: ~w~%i~n~~b~Kraftstoff: ~w~%s~n~~b~Benzin: ~w~%d/%d L~n~~b~Zustand: ~w~%i~n~~b~Radio: ~w~%s", CarName[model-400], floatround(SpeedF), g_asKraftstoff[kraftstoff] , gGas[vehicleid], GetMaxTank(vehicleid), CarHealthIni, radios);
Das ist die komplette Funktion:
public OnPlayerUpdateTacho()
{
new
radios[64],
string[200],
Float:CarHealth,
Float:speed,
Float:memory[3],
kraftstoff,
model,
CarHealthIni,
SpeedT,
SpeedF,
vehicleid;
for(new i = 0 ; i < g_iMaxPlayers ; i++)
{
if(IsPlayerConnected(i))
{
vehicleid = GetPlayerVehicleID(i);
if(vehicleid && IsPlayerInVehicle(i,vehicleid) ) {
speed = GetVehicleSpeed_P(i);
GetVehicleHealth(vehicleid, CarHealth);
model = GetVehicleModel( vehicleid );
CarHealth = CarHealth -250;
CarHealth = CarHealth/10;
CarHealth = CarHealth/75;
CarHealth = CarHealth * 100;
CarHealthIni = floatround(CarHealth, floatround_floor);
if(CarHealthIni < 0){CarHealthIni = 0;}
GetVehicleVelocity(vehicleid, memory[0], memory[1], memory[2]);
SpeedT = floatround(speed)/2;
SpeedF = (SpeedT*1000)/700;
if(RadioSender[vehicleid] == 0){radios ="Kein Radio";}
else if(RadioSender[vehicleid] == 1){radios ="1-Live";}
else if(RadioSender[vehicleid] == 2){radios ="Technobase.FM";}
else if(RadioSender[vehicleid] == 3){radios ="Hardbase.FM";}
else if(RadioSender[vehicleid] == 4){radios ="I Love Radio";}
else if(RadioSender[vehicleid] == 5){radios ="Breakz.us";}
if(!IsAFahrrad(model))
{
kraftstoff = GetVehicleModelKraftstoff( model );
format(string, sizeof(string), "~b~%s~n~~n~~b~KM/H: ~w~%i~n~~b~Kraftstoff: ~w~%s~n~~b~Benzin: ~w~%d/%d L~n~~b~Zustand: ~w~%i~n~~b~Radio: ~w~%s", CarName[model-400], floatround(SpeedF), g_asKraftstoff[kraftstoff] , gGas[vehicleid], GetMaxTank(vehicleid), CarHealthIni, radios);
PlayerTextDrawSetString(i, TachoMessage[2][i], string);
}
else
{
format(string, sizeof(string), "~b~%s~n~~n~~b~KM/H: ~w~%i~n~~b~Benzin: ~w~-/- L~n~~b~Zustand: ~w~%i~n~~b~Radio: ~w~%s", CarName[model-400], floatround(SpeedF),CarHealthIni, radios);
PlayerTextDrawSetString(i, TachoMessage[2][i], string);
}
if( SpeedF >= 210 ) {
new
t = gettime();
if( t >= Spieler[i][punixSpeedhack] ) {
format(string,sizeof(string),"[ACHTUNG] Spieler %s Speed-Warnung %dKm/h",GetName(i),SpeedF);
SendAdminMessage(COLOR_LIGHTRED2,string);
Spieler[i][punixSpeedhack] = t + 5; // Alle 5 Sekunden MAXIMAL die Nachricht senden
}
}
}
}
}
return 1;
}
Das ist die direkte Zeile 1946 wo der Fehler gemeldet wird:
new Float:x, Float:y, Float:z;
Die komplette Funktion davon:
UpdateInfos();
IntAndVwWFix();
OnPlayerTachoShowHide();
OnUpdateUhr();
OnPlayerUpdateTacho();
new Float:x, Float:y, Float:z;
Ich bitte um Hilfe!!!