Beiträge von Jeffry

    Ja. Schreibe es so:
    if(strcmp(cmd, "/friedhof", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pFriedhof] >= 1)
    {
    new chat[128];
    new secs = PlayerInfo[playerid][pFriedhofTime]-gettime();
    format(chat, sizeof(chat), "Du bist noch für ca %d Sekunden auf dem Friedhof",secs);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, chat);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht auf dem Friedhof.");
    }
    }
    return 1;
    }

    Ok, dann ändere das:
    new Hour,Minute,Sec,String[12];
    gettime(Hour,Minute,Sec);
    format(String,sizeof(String),"%02d:%02d",Hour,Minute);
    TextDrawSetString(Uhrzeit,String);
    zu:
    new Hour,Minute,Sec,Day,Month,Year;
    TimestampToDate(gettime() + (3600 * STUNDEN_DIFFERENZ), Day, Month, Year, Hour, Minute, Sec, 0);
    format(String,sizeof(String),"%02d:%02d",Hour,Minute);
    TextDrawSetString(Uhrzeit,String);


    PS: Variablen-Namen schreibt man eigentlich klein am Anfang, da ich nicht weiß, wie dein weiterer Code aussieht habe ich das nicht geändert.

    Poste bitte mal den Code, wie du ihn jetzt hast, wenn du den Spieler nach der Skin-Auswahl spawnen lässt (also nach deiner eigenen Auswahl).
    Möglicherweise ist da was durcheinander gekommen.

    Ahh, du hast den Code nicht richtig übernommen. Da habe ich natürlich nicht explizit darauf geachtet.
    for(new i = 0; i<sizeof(pCar); i++)
    {
    new Float:vPos[4];
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    GetVehicleZAngle(pCar[i], vPos[3]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    vPos[0] += (-8.0 * floatsin(-vPos[3], degrees));
    vPos[1] += (-8.0 * floatcos(-vPos[3], degrees));
    Object[b][ra_x] = vPos[0],Object[b][ra_y] = vPos[1],Object[b][ra_z] = vPos[2],Object[b][ra_a] = vPos[3];
    ObjectID[playerid] = CreateObject(1632,Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-3.0, 0, 0, Object[b][ra_a]+0);
    MoveObject(ObjectID[playerid], Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-1.0, 0.06, 0, 0, Object[b][ra_a]+0);
    SetTimer("BuildObj", 30000, false);
    ObjOwner[playerid] = playerid;
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht nah genug am Laster!");

    Schreib es mal so, geht es dann?
    Function SetPlayerSpawn(playerid)
    {
    SetSpawnInfo(playerid, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0);
    TogglePlayerSpectating(playerid, 0);
    SpawnPlayer(playerid);
    StopAudioStreamForPlayer(playerid);
    return 1;
    }


    Übrigens bringt 40000 im Streamer nichts, da nur maximal 1000 Objekte angezeigt werden können. ;)

    Poste mal dein "SetPlayerSpawn".
    Hast du eine eigene Class Selection, oder nutzt du die Standard-Buttons von SA-MP (Links / Rechts / Spawn)?

    Da ich nicht weiß, in welcher Zeitzone dein Server steht hätte ich es dir so vorgeschlagen:
    new date[6];
    TimestampToDate(gettime() + (3600 * STUNDEN_DIFFERENZ), date[0], date[1], date[2], date[3], date[4], date[5], 0);
    printf("Uhrzeit: %02d:%02d", date[3], date[4]);
    Wobei date[0] = Jahr ... bis date[5] = Sekunde.


    Das STUNDEN_DIFFERENZ ersetzt du mit der Differenz der Stunden zwischen der Zeitzone des Servers und unserer Zeitzone, also zum Beispiel 7 (-6 -> +1).

    Du kannst dann entweder den Range erhöhen, oder du berechnest die Position erst nach der Range Abfrage. Eigentlich hatte ich gedacht 15 reicht als Range.


    for(new i = 0; i<sizeof(pCar); i++)
    {
    new Float:vPos[4];
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    GetVehicleZAngle(pCar[i], vPos[3]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    vPos[0] = (-8.0 * floatsin(-vPos[3], degrees));
    vPos[1] = (-8.0 * floatcos(-vPos[3], degrees));
    Object[b][ra_x] = vPos[0],Object[b][ra_y] = vPos[1],Object[b][ra_z] = vPos[2],Object[b][ra_a] = vPos[3];
    ObjectID[playerid] = CreateObject(1632,Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-3.0, 0, 0, Object[b][ra_a]+0);
    MoveObject(ObjectID[playerid], Object[b][ra_x], Object[b][ra_y], Object[b][ra_z]-1.0, 0.06, 0, 0, Object[b][ra_a]+0);
    SetTimer("BuildObj", 30000, false);
    ObjOwner[playerid] = playerid;
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_ERRORTEXT, "Du bist nicht nah genug am Laster!");



    EDIT: Ich habe den Fehler gerade entdeckt, das return war in der Schleife, somit hat es beim ersten Fahrzeug aufgehört. Die Berechnung lasse ich trotzdem mal so, ist ressourcenschonender. Code ist abgeändert, sollte jetzt klappen.