Beiträge von SA:MP

    Eltern dasnn das Geld wieder und der Kioskbesitzer hat 100€ schulden, das erklärt auch warum es jeder anders Handhabt.


    Okey...
    Wird die Paysafecard dann gesperrt??
    Dann hätte man ja somit den doppelten Gewinn, wenn man sich eine kauft, diese dann ausgibt und dann der Erziehungsberechtigter das Geld
    wieder zurück holt. :D

    Paysafecards werden nur noch ab 18 Jahren verkauft, weil diese im Internet meist
    für Glücksspiele eingesetzt werden und Glücksspiele sind logischerweise erst ab 18 Jahren.


    Ein Kiosk in meiner Nähe was einem älteren Herren gehört, verkauft diese Paysafecards jedes mal
    auch an Leuten die unter 18 Jahren sind. :D

    Genau,
    das ist eine neue Regelung.
    In Tankstellen und Kiosk werden sie nur ab 18 Jahren verkauft.
    In Automaten gibt es sie auch nicht mehr.


    Es wird ab 18 Jahren verkauft, weil es ja fürs Internet genutzt wird
    und überwigend für Glücksspiele.

    Ich hatte das jetzt so gemacht bei "OnPlayerEnterVehicle"



    if(!IsAFahrrad(vehicleid) && ispassenger != 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Den Motor startest du mit "COLOR_HEX_BLUE"/Motor "COLOR_HEX_WHITE"Mit "COLOR_HEX_BLUE"/Licht "COLOR_HEX_WHITE"schaltest du dein Licht ein!");
    }


    Ist das falsch?

    Guten Morgen,
    ich benutze das Plugin "crashdetecte.so", dieser meldet diesen Fehler:


    [08:59:29] [debug] Run time error 4: "Array index out of bounds"
    [08:59:29] [debug] Accessing element at index 555 past array upper bound 4
    [08:59:29] [debug] AMX backtrace:
    [08:59:29] [debug] #0 000d3014 in public OnPlayerStateChange () from neu.amx


    Eben habe ich einige Sachen ausprobiert und habe festgestellt, das es an dieser Funktion liegt:


    if(Spieler[playerid][pLevel] <= 10)//von lv. 1 - 10 anzeigen^^
    {
    if(!IsAFahrrad(mod))
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Den Motor startest du mit "COLOR_HEX_BLUE"/Motor "COLOR_HEX_WHITE"Mit "COLOR_HEX_BLUE"/Licht "COLOR_HEX_WHITE"schaltest du dein Licht ein!");
    }
    }


    Ich glaube es liegt daran, weil er das nur ab einem bestimmten Level anzeigt.
    Ich möchte das diese SendClientMessang nicht von einem Level abhändig ist, sondern immer angezeigt wird,
    wenn jemand in ein Fahrzeug steigt.

    Guten Abend,
    es gibt ein kleinen Bug bei dem Piloten Job, ich kann den Fehler leider nicht finden.
    Der Textdraw und die SendClientMessang "Warte .. Sekunden" kommt ständig und geht beim entsprechenden Spieler nicht weg.
    Auch wenn er sich im Flugzeug befindet und auch wenn er den Flug beendet.


    An was könnte es liegen?


    public OnPlayerWaitPilot(playerid)
    {
    new stunde, minute, sekunde;
    gettime(stunde, minute, sekunde);
    if(IsPlayerConnected(playerid) && gPlayerLogged[playerid] == 1)
    {
    if(PilotTime[playerid] < 6)
    {
    PilotTime[playerid] ++;
    if(PilotTime[playerid] == 1)
    {
    PlayerTextDrawSetString(playerid, BusMessage[playerid], "~g~Warte ~w~... ~r~5 ~w~Sekunden");
    PlayerTextDrawShow(playerid, BusMessage[playerid]);
    return 1;
    }
    else if(PilotTime[playerid] == 2)
    {
    PlayerTextDrawSetString(playerid, BusMessage[playerid], "~g~Warte ~w~... ~r~4 ~w~Sekunden");
    PlayerTextDrawShow(playerid, BusMessage[playerid]);
    return 1;
    }
    else if(PilotTime[playerid] == 3)
    {
    PlayerTextDrawSetString(playerid, BusMessage[playerid], "~g~Warte ~w~... ~r~3 ~w~Sekunden");
    PlayerTextDrawShow(playerid, BusMessage[playerid]);
    return 1;
    }
    else if(PilotTime[playerid] == 4)
    {
    PlayerTextDrawSetString(playerid, BusMessage[playerid], "~g~Warte ~w~... ~r~2 ~w~Sekunden");
    PlayerTextDrawShow(playerid, BusMessage[playerid]);
    return 1;
    }
    else if(PilotTime[playerid] == 5)
    {
    PlayerTextDrawSetString(playerid, BusMessage[playerid], "~g~Warte ~w~... ~r~1 ~w~Sekunden");
    PlayerTextDrawShow(playerid, BusMessage[playerid]);
    return 1;
    }
    else if(PilotTime[playerid] == 6)
    {
    PlayerTextDrawHide(playerid, BusMessage[playerid]);
    PilotTime[playerid] = 0;
    }
    }
    for(new i=0;i<sizeof(flug);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(!(GetPlayerState(playerid) == PLAYER_STATE_DRIVER))return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Flugzeug!"); KillTimer(pilotwait[playerid]);
    if(vID == flug[i])
    {
    new pilotlog[128];
    new ort[24];
    GetPlayer2DZone(playerid, ort, 24);
    if(pCheckpoint[playerid] == CP_PILOT1)
    {
    SetPlayerCheckpointEx(playerid, -1650.4489,-157.8306,15.4847, 7.0, CP_PILOT2);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächster Flughafen: San Fierro Easter Bay Airport");
    UnfreezePlayer(playerid);
    KillTimer(pilotwait[playerid]);
    format(pilotlog, sizeof(pilotlog), "Name: %s - Ort: %s", GetName(playerid), ort);
    LogPilot(pilotlog);
    return 1;
    }
    else if(pCheckpoint[playerid] == CP_PILOT2)
    {
    SetPlayerCheckpointEx(playerid, 1476.7418,1694.5992,12.1470, 7.0, CP_PILOT3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächster Flughafen: Las Venturas Airport");
    UnfreezePlayer(playerid);
    KillTimer(pilotwait[playerid]);
    format(pilotlog, sizeof(pilotlog), "Name: %s - Ort: %s", GetName(playerid), ort);
    LogPilot(pilotlog);
    return 1;
    }
    else if(pCheckpoint[playerid] == CP_PILOT3)
    {
    DisablePlayerCheckpointEx(playerid);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast durch diese Runde $8500 verdient. Fliege nun wieder zum LS-Airport");
    Spieler[playerid][pPayCheck] += 8500;
    UnfreezePlayer(playerid);
    KillTimer(pilotwait[playerid]);
    format(pilotlog, sizeof(pilotlog), "Name: %s - Ort: %s - Geld: 8500", GetName(playerid), ort);
    LogPilot(pilotlog);
    return 1;
    }
    }
    }
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Flugzeug.");
    }
    return 1;
    }

    Ich habe hier die komplette "OnPlayerStateChange" Kopiert und hier eingefügt.
    Nirgends ist im Script "Array" zu finden, und welche Funktion ist in der "OnPlayerStateChange" Funktion zu groß definiert wurden?


    Bitte um Hilfe!

    Guten Abend,
    ich nutze das Plugin crashdetect.so, diese meldete heute einige Fehler in den Logs.
    Ich wollte mal nachfragen, was diese Fehler bedeuten könnten und in welchen Fällen dies meist auftritt etc.


    [19:17:54] [debug] AMX backtrace:
    [19:17:54] [debug] #0 000d2e30 in public OnPlayerStateChange () from neu.amx
    [19:17:55] [debug] Run time error 4: "Array index out of bounds"
    [19:17:55] [debug] Accessing element at index 555 past array upper bound 4
    [19:17:55] [debug] AMX backtrace:
    [19:17:55] [debug] #0 000d2e30 in pu



    Das ist die "OnPlayerStateChange" Funktion:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_ONFOOT)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && gPlayerLogged[i] && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
    {
    PlayerSpectatePlayer(i, SpectatedPlayer[i]);
    }
    }
    }
    if(newstate == PLAYER_STATE_PASSENGER)
    {
    if(!(GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31))
    {
    SetPlayerArmedWeapon(playerid, 0);
    }
    }
    if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
    StopAudioStreamForPlayer(playerid);
    }
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && gPlayerLogged[i] && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
    {
    PlayerSpectateVehicle(i, GetPlayerVehicleID(SpectatedPlayer[i]));
    }
    }
    new vID = GetPlayerVehicleID(playerid);
    if(RadioSender[vID] > 0)
    {
    if(RadioSender[vID] == 1)
    {
    PlayAudioStreamForPlayer(playerid, "http://www.wdr.de/wdrlive/media/einslive.m3u");
    }
    else if(RadioSender[vID] == 2)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/TechnoBase.pls");
    }
    else if(RadioSender[vID] == 3)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/HardBase.pls");
    }
    else if(RadioSender[vID] == 4)
    {
    PlayAudioStreamForPlayer(playerid, "http://ni39999_2.fastdownload.nitrado.net/iloveradio.m3u");
    }
    else if(RadioSender[vID] == 5)
    {
    PlayAudioStreamForPlayer(playerid, "http://breakz.us/radio/listen.m3u");
    }
    else if(RadioSender[vID] == 6)
    {
    PlayAudioStreamForPlayer(playerid, "http://metafiles.gl-systemhaus.de/hr/youfm_2.m3u");
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    SetPlayerArmedWeapon(playerid, 0);
    new mod = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(IsAFahrrad(mod))
    {
    new engine, light, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, light, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, light, alarm, doors, bonnet, boot, objective);
    }
    if(Spieler[playerid][pLevel] <= 10)//von lv. 1 - 10 anzeigen^^
    {
    if(!IsAFahrrad(mod))
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-4 "COLOR_HEX_WHITE"um den Motor zu starten.");
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-6 "COLOR_HEX_WHITE"um das Licht zu aktivieren.");
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Mit dem Befehl /Radio schaltest du dein Auto-Radio an!");
    }
    }
    if(mod == 560)
    {
    if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2)
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-2 "COLOR_HEX_WHITE"um die Sirene zu aktivieren.");
    }
    }
    if(mod == 525)
    {
    if(Spieler[playerid][pFraktion] == 5)
    {
    SendClientMessage(playerid, COLOR_WHITE, COLOR_HEX_WHITE"* Halte "COLOR_HEX_BLUE"Leertaste "COLOR_HEX_WHITE"gedrückt und drücke "COLOR_HEX_BLUE"Numpad-2 "COLOR_HEX_WHITE"um die Sirene zu aktivieren.");
    }
    }
    if(IsACar(mod))
    {
    if(Spieler[playerid][pCarLic] == 0 && pFahrStunde[playerid] == 0)
    {


    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Führerschein!");
    return 1;
    }
    }
    if(IsABoat(mod))
    {
    if(Spieler[playerid][pBoatLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Bootsschein!");
    return 1;
    }
    }
    if(IsAPlane(mod))
    {
    if(Spieler[playerid][pFlyLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Flugschein!");
    return 1;
    }
    }
    if(IsATruck(mod))
    {
    if(Spieler[playerid][pLKWLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen LKW-Schein!");
    return 1;
    }
    }
    if(IsABike(mod))
    {
    if(Spieler[playerid][pMotoLic] == 0 && pFahrStunde[playerid] == 0)
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast noch keinen Motorradschein!");
    return 1;
    }
    }
    new vehicleid = GetPlayerVehicleID(playerid);
    new typ, string[256];
    typ=IsAutohausCar(vehicleid);
    if(!(typ==-1))
    {
    FreezePlayer(playerid);
    Spectating[playerid][0]=typ;
    new str[512];
    format(str, sizeof(str), "{FFFFFF}Willkommen im Autohaus.\n{3F62DA}Informationen:\n{3F62DA}Name:{FFFFFF}\t%s\n{3F62DA}Preis:{FFFFFF}\t %d$\n{3F62DA}Tank:{FFFFFF}\t %d\n\nWenn du dieses Fahrzeug wirklich kaufen möchtest,\ndann drücke auf \"{3F62DA}Kaufen{FFFFFF}\".\nWenn nicht drücke auf \"{3F62DA}Abbrechen{FFFFFF}\".", Kaufliste[typ][Name], Kaufliste[typ][aPreis], Kaufliste[typ][Tank]);
    ShowPlayerDialog(playerid, DIALOG_SELLCAR, DIALOG_STYLE_MSGBOX, "{3F62DA}Autohaus", str, "Kaufen", "Abbrechen");
    }
    for(new i=0;i<sizeof(combines);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == combines[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 1)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Farmer Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startharvest zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stopharvest zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Farmer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(drogen);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == drogen[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 7)
    {
    JobVehicle[playerid] = vID;
    new str[128];
    format(str, sizeof(str), "** Drogenbestand des Fahrzeugs: %d/5 **", bestand[vID]);
    SendClientMessage(playerid, COLOR_GREEN, str);
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadpakete zum aufladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /unloadpakete zum entladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Drogendealer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(wdealer);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == wdealer[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 8)
    {
    JobVehicle[playerid] = vID;
    new str[128];
    format(str, sizeof(str), "** Waffenbestand des Fahrzeugs: %d/5 **", bestand[vID]);
    SendClientMessage(playerid, COLOR_GREEN, str);
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadpakete zum aufladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /unloadpakete zum entladen der Pakete.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Drogendealer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(bus);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == bus[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 2)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Busfahrer Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startlinie zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stoplinie zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Busfahrer.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(flug);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == flug[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 4)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Pilot Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /startflug zum starten.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /stopflug zum stoppen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Pilot.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(truck);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == truck[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 3)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* Trucker Information *");
    if(GetVehicleModel(vID) == 514)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Beliefere nun die Tankstellen mit Benzin!");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadbenzin um den Tanker mit Benzin zu beladen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /sellbenzin um Benzin an Tankstellen zu verkaufen.");
    SendClientMessage(playerid, COLOR_WHITE, "Unter /navi -> Weitere Orte findest du die Öl-Raffinerie.");
    return 1;
    }
    else if(GetVehicleModel(vID) == 499)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Beliefere nun die Geschäfte mit Waren!");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /loadwaren um den Transporter mit Waren zu beladen.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /sellwaren um Waren an Geschäfte zu verkaufen.");
    SendClientMessage(playerid, COLOR_WHITE, "Unter /navi -> Weitere Orte findest du die Waren-Vergabe.");
    return 1;
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Trucker.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    for(new i=0;i<sizeof(kfz);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == kfz[i])
    {
    for(new pID=0;pID<GetMaxPlayers();pID++)
    {
    if(JobVehicle[pID] == vID && JobVehicle[playerid] != vID)
    {
    SendClientMessage(playerid, COLOR_GREY, "Das Fahrzeug wird derzeit noch benutzt!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    if(Spieler[playerid][pJob] == 5)
    {
    JobVehicle[playerid] = vID;
    SendClientMessage(playerid, COLOR_GREEN, "* KFZ-Mechatroniker Information *");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /repaircar [SpielerID/Name] [Preis] zum reparieren.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /refillcar [SpielerID/Name] [Preis] zum auftanken.");
    SendClientMessage(playerid, COLOR_WHITE, "Tippe /joblock zum abschließen des Fahrzeugs.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein KFZ-Mechatroniker.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    new vehicle = GetPlayerVehicleID(playerid);
    new besitzer = GetCarOwner(vehicle);
    new Slot = GetCarOwnerSlot(besitzer, vehicle);
    if(vehicle == PlayerCar[besitzer][Slot][CarId])
    {
    if(PlayerCar[besitzer][Slot][CarState] == 1)
    {
    FreezePlayer(playerid);
    format(string, sizeof(string), COLOR_HEX_BLUE"Dieses Fahrzeug wurde aufgrund einer Ordnungswidrigkeit abgeschleppt!\n"COLOR_HEX_WHITE"Um das Fahrzeug freizukaufen, benötigst du "COLOR_HEX_ORANGE"$35000"COLOR_HEX_WHITE"!\nKlicke nun auf \"Freikaufen\" um dein Fahrzeug zurück zu bekommen.");
    ShowPlayerDialog(playerid, DIALOG_CAROAMT, DIALOG_STYLE_MSGBOX, COLOR_HEX_BLUE"Ordnungsamt", string, "Freikaufen", "Abbrechen");
    }
    }
    }


    return 1;
    }


    Lg.

    Guten Tag,
    ich habe ein kleines Problem.
    Mein Tanksystem logs in den Server Logs ca. jede Minute wie viele Tankstellen noch frei sind.
    Ist diese Funktion überhaupt nötig?


    //Servername
    new serverhost = 1;


    public OnGameModeInit()
    {
    SetTimer("Servername", 5000, 1);


    forward Servername();
    public Servername()
    {
    new t = FreeTankCheck();
    printf("FreieTanke:%i",t);
    if(serverhost == 1)
    {
    SendRconCommand("hostname [LyD] SELFMADE! Beginne dein 2tes Leben [GER] ");
    serverhost = 2;
    }
    else if(serverhost == 2)
    {
    SendRconCommand("hostname [0.3e] Live your Dream ~ Roleplay [GER]");
    serverhost = 1;
    }
    }



    Die andere Funktion mit "Serverhost" einfach ignorieren.

    Hallo, ich habe die zwei genannten Sachen von dir mal entfernt.
    Es werden keine Fehler mehr in den Logs angezeigt.
    Er zeigt nur noch das als Fehler an:


    [19:17:54] [debug] AMX backtrace:
    [19:17:54] [debug] #0 000d2e30 in public OnPlayerStateChange () from neu.amx
    [19:17:55] [debug] Run time error 4: "Array index out of bounds"
    [19:17:55] [debug] Accessing element at index 555 past array upper bound 4
    [19:17:55] [debug] AMX backtrace:
    [19:17:55] [debug] #0 000d2e30 in pu

    Da dein Code recht strukturiert ist, kommentierst Du mal die ganze HauptTimer Funktion aus. Nun fügst Du Stück für Stück wieder ein und testest es - so kommst Du mit wenig Mühe recht schnell zum Ergebnis - Du kannst zuerst auch schauen ob es in der Player-For Schleife liegt (50% auskommentieren und schauen ob es in den Systemen oder der Player-For Schleife liegt)


    Was für Folgen würde eigentlich so ein Fehler auslösen?
    Eventuell auf Server laggs?

    Vom Haupttimer:


    forward HauptTimer();


    public HauptTimer()
    {
    TextDrawSetString(Fight, "Gangfight:~n~_~n~_~n~_~n~_~n~_");
    UhrzeitZeiger();
    for(new i=1;i<MAX_BIZES;i++)
    {
    UpdateBizText(i);
    }
    for(new i=1;i<MAX_HOUSES;i++)
    {
    UpdateHouseText(i);
    }
    for(new i=1;i<MAX_TANKEN;i++)
    {
    UpdateTankeText(i);
    }
    for(new i=1;i<MAX_APLATZ;i++)
    {
    UpdateAngelText(i);
    }
    automsg ++;
    if(automsg == 600)
    {
    SendClientMessageToAll(COLOR_YELLOW, "|______________ Live your Dream ______________|");
    SendClientMessageToAll(COLOR_WHITE, "Du möchtest dem Server behilflich sein?");
    SendClientMessageToAll(COLOR_WHITE, "Dann kaufe dir den Donator Rang!");
    SendClientMessageToAll(COLOR_WHITE, "Dieser ermöglicht dir einige Bonusse!");
    SendClientMessageToAll(COLOR_WHITE, "Weitere Informationen im Forum www.LyD-Roleplay.de");
    }
    else if(automsg == 1200)
    {
    SendClientMessageToAll(COLOR_YELLOW, "|______________ Live your Dream ______________|");
    SendClientMessageToAll(COLOR_WHITE, "Du brauchst Hilfe oder hast Probleme?");
    SendClientMessageToAll(COLOR_WHITE, "Dann verwende /sup. Du kannst mit allen");
    SendClientMessageToAll(COLOR_WHITE, "Spielern reden indem du /gc verwendest.");
    SendClientMessageToAll(COLOR_WHITE, "Durch /liste siehst du eine Liste der");
    SendClientMessageToAll(COLOR_WHITE, "Fraktionen o.ä und welche Spieler davon");
    SendClientMessageToAll(COLOR_WHITE, "Online sind. Benutze /help für andere Befehle.");
    }
    else if(automsg == 1800)
    {
    SendClientMessageToAll(COLOR_YELLOW, "|______________ Live your Dream ______________|");
    SendClientMessageToAll(COLOR_WHITE, "Wir besitzen auch ein Forum, dieses findest");
    SendClientMessageToAll(COLOR_WHITE, "Du unter folgender URL: www.LyD-Roleplay.de!");
    SendClientMessageToAll(COLOR_WHITE, "Dort kannst du dich dann für Fraktionen o.ä bewerben.");
    SendClientMessageToAll(COLOR_WHITE, "Unsere Teamspeak IP lautet: 88.198.8.45:5555");
    automsg = 0;
    }
    UpdateInfos();
    IntAndVwWFix();
    OnPlayerTachoShowHide();
    OnUpdateUhr();
    OnPlayerUpdateTacho();
    new Float:x, Float:y, Float:z;
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && gPlayerLogged[i])
    {
    GetPlayerPos(i, x, y, z);
    if(Spieler[i][pWanteds] < 1)
    {
    Update3DTextLabelText(Spieler[i][pWantedLabel], COLOR_RED, " ");
    Spieler[i][pWanteds] = 0;
    PlayerTextDrawHide(i, Gesucht[i]);
    }
    if(IsAFK[i] == 1)
    {
    Update3DTextLabelText(Spieler[i][pAFKLabel], COLOR_PURPLE, "Away from Keyboard");
    }
    else if(IsAFK[i] == 0)
    {
    Update3DTextLabelText(Spieler[i][pAFKLabel], COLOR_PURPLE, " ");
    }


    OnPlayerTot(i);
    OnPlayerJail(i);
    OnPlayerMute(i);
    if(!IsAFightFaction(GetPlayerFaction(i)))
    {
    for(new fs;fs<sizeof(FightSystem);fs++)
    {
    TextDrawHideForPlayer(i, Fight);
    TextDrawHideForPlayer(i, FightUnderline);
    TextDrawHideForPlayer(i, FightUnderline2);
    TextDrawHideForPlayer(i, FightSystem[fs][fsWinFaction]);
    TextDrawHideForPlayer(i, FightSystem[fs][fsLoseFaction]);
    TextDrawHideForPlayer(i, FightSystem[fs][fsWinKills]);
    TextDrawHideForPlayer(i, FightSystem[fs][fsLoseKills]);
    TextDrawHideForPlayer(i, FightSystem[fs][fsTime]);
    }
    }
    if(Spieler[i][pWanteds] > 0)
    {
    Update3DTextLabelText(Spieler[i][pWantedLabel], COLOR_RED, "Gesucht");
    new str[12];
    format(str, sizeof(str), "~y~] ~w~%i", Spieler[i][pWanteds]);
    PlayerTextDrawSetString(i, Gesucht[i], str);
    PlayerTextDrawShow(i, Gesucht[i]);
    }
    if(IsPlayerSpectating[i] == 1)
    {
    SetPlayerInterior(i, GetPlayerInterior(SpectatedPlayer[i]));
    SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(SpectatedPlayer[i]));
    new SpecStr[155];
    new weaponStr[32];
    GetWeaponName(GetPlayerWeapon(SpectatedPlayer[i]), weaponStr, 32);
    new Float:pHealth, Float:pArmor;
    GetPlayerHealth(SpectatedPlayer[i], pHealth);
    GetPlayerArmour(SpectatedPlayer[i], pArmor);
    format(SpecStr, sizeof(SpecStr), "~y~Name: ~w~%s~n~~y~Leben:~w~ %.f~n~~y~Ruestung:~w~ %.f~n~~y~Level:~w~ %d~n~~y~Waffe: ~w~%s", GetName(SpectatedPlayer[i]), pHealth, pArmor, Spieler[SpectatedPlayer[i]][pLevel], weaponStr);
    PlayerTextDrawSetString(i, Spectate[1][i], SpecStr);
    PlayerTextDrawShow(i, Spectate[0][i]);
    PlayerTextDrawShow(i, Spectate[1][i]);
    PlayerTextDrawShow(i, Spectate[2][i]);
    PlayerTextDrawShow(i, Spectate[3][i]);
    }
    else
    {
    PlayerTextDrawHide(i, Spectate[0][i]);
    PlayerTextDrawHide(i, Spectate[1][i]);
    PlayerTextDrawHide(i, Spectate[2][i]);
    PlayerTextDrawHide(i, Spectate[3][i]);
    }
    }
    }
    for(new vehicleid=0;vehicleid<MAX_VEHICLES;vehicleid++)
    {
    for(new i=0;i<sizeof(drogen);i++){
    if(vehicleid == drogen[i]) {
    gGas[drogen[i]] = GetMaxTank(vehicleid);
    gMaxGas[drogen[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(drogen[i]))
    {
    UnLockCar(drogen[i]);
    }
    }
    }
    for(new i=0;i<sizeof(wdealer);i++){
    if(vehicleid == wdealer[i]) {
    gGas[wdealer[i]] = GetMaxTank(vehicleid);
    gMaxGas[wdealer[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(wdealer[i]))
    {
    UnLockCar(wdealer[i]);
    }
    }
    }
    for(new i=0;i<sizeof(combines);i++){
    if(vehicleid == combines[i]) {
    gGas[combines[i]] = GetMaxTank(vehicleid);
    gMaxGas[combines[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(combines[i]))
    {
    UnLockCar(combines[i]);
    }
    }
    }
    for(new i=0;i<sizeof(bus);i++){
    if(vehicleid == bus[i]) {
    gGas[bus[i]] = GetMaxTank(vehicleid);
    gMaxGas[bus[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(bus[i]))
    {
    UnLockCar(bus[i]);
    }
    }
    }
    for(new i=0;i<sizeof(flug);i++){
    if(vehicleid == flug[i]) {
    gGas[flug[i]] = GetMaxTank(vehicleid);
    gMaxGas[flug[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(flug[i]))
    {
    UnLockCar(flug[i]);
    }
    }
    }
    for(new i=0;i<sizeof(truck);i++){
    if(vehicleid == truck[i]) {
    gGas[truck[i]] = GetMaxTank(vehicleid);
    gMaxGas[truck[i]] = GetMaxTank(vehicleid);
    if(!IsVehicleOccupied(truck[i]))
    {
    UnLockCar(truck[i]);
    }
    }
    }
    }
    return 1;
    }

    Dies liegt bei OnGameModeInit

    SetTimer("HauptTimer", 1000, 1);



    Vom OnPlayerStateChange:


    Das passte hier nicht mehr hinein.
    Ich habe es in Pastebin eingefügt http://pastebin.com/H1fytzSJ

    Guten Abend,
    ich habe ein kleines Problem.
    Ich wollte für Donatormitglieder ein persönliches Chat einrichten,
    was nur Donatormitglieder von Rang 1 bis Rang 2 sehen und schreiben dürfen.
    Wenn man /cc macht, zeigt er nur die SendClientMessange "* CLUB-CHAT: /cc [Nachricht]" wenn du dann zum Beispiel ein
    Text eingeben möchtest, sendet er es nicht ab. Woran kann es liegen?


    CMD:cc(playerid, params[])
    {
    if(Spieler[playerid][pMuted]== 1)return SendClientMessage(playerid, COLOR_CHAT_MUTED, "Du bist gemutet.");
    new text[96];
    if(sscanf(params, "s[96]", text))return SendClientMessage(playerid, COLOR_GREEN, "* CLUB-CHAT: /cc [Nachricht]");
    if(Spieler[playerid][pDonateRank] >= 1)
    {
    new string[128];
    format(string, sizeof(string), "* Clubmitglied %s sagt: %s, over *", GetName(playerid), text);
    SendClientMessage(Spieler[playerid][pDonateRank], COLOR_CLUB, string);
    format(string, sizeof(string), "Clubmitglied %s - %s", GetName(playerid), text);
    }
    return 1;
    }


    Lg.