Beiträge von Jeffry

    Ok, dann schreibs so und poste dann was im Server Log steht, wenn du den Server betrittst und auf die Textdraws wartest:
    public Verbindung(playerid)
    {
    printf("Verbindung für %d aufgerufen", playerid);
    //Verbindung
    for(new i; i<MAX_PLAYERS; i++) SendClientMessage(playerid, COLOR_WHITE, " ");
    printf("1");
    TextDrawHideForPlayer(playerid, Textdraw18), TextDrawHideForPlayer(playerid, Textdraw19);
    printf("2");

    //Login/Register
    TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6);
    printf("3");
    TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9);
    printf("4");
    TextDrawShowForPlayer(playerid, Textdraw10); TextDrawShowForPlayer(playerid, Textdraw11); TextDrawShowForPlayer(playerid, Textdraw12);
    printf("5");
    TextDrawShowForPlayer(playerid, Textdraw13); TextDrawShowForPlayer(playerid, Textdraw14); TextDrawShowForPlayer(playerid, Textdraw15);
    printf("6");
    TextDrawShowForPlayer(playerid, Textdraw16); TextDrawShowForPlayer(playerid, Textdraw17);
    printf("7");
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    //Verbindung
    printf("OnPlayerRequestClass: %d");
    SetTimerEx("Verbindung", 10000, false, "d", playerid);
    printf("Timer gestartet...");
    TogglePlayerSpectating(playerid, 1);
    for(new i; i<MAX_PLAYERS; i++){SendClientMessage(playerid, COLOR_WHITE, " ");}
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Die Verbindung zum Server wird aufgebaut...");
    InterpolateCameraPos(playerid, 1264.128662, -1531.366088, 54.762935, 1402.836669, -893.413818, 86.809860, 10000);
    TextDrawShowForPlayer(playerid, Textdraw0), TextDrawShowForPlayer(playerid, Textdraw1), TextDrawShowForPlayer(playerid, Textdraw2),
    TextDrawShowForPlayer(playerid, Textdraw3), TextDrawShowForPlayer(playerid, Textdraw18), TextDrawShowForPlayer(playerid, Textdraw19);
    InterpolateCameraLookAt(playerid, 1265.173828, -1526.493408, 55.168743, 1403.261474, -888.433959, 86.665664, 5000);
    return 1;
    }

    Das passt schon, du hast ja diese Abfrage drin:
    if(PlayerInfo[i][pPayDay] >= 60){


    Wenn du dir unsicher bist, kannst du es ja auch so schreiben:
    public paydaytimer()
    {
    ForAllPlayers(i)
    {
    if(PlayerInfo[i][pJailed] != 2)
    {
    PlayerInfo[i][pPayDay] += 1;
    if(PlayerInfo[i][pPayDay] >= 60) PayDay(i);
    }
    }
    return 1;
    }
    Macht keinen Unterschied.

    public paydaytimer()
    {
    ForAllPlayers(i)
    {
    if(PlayerInfo[i][pJailed] != 2)
    {
    PlayerInfo[i][pPayDay] += 1;
    PayDay(i);
    }
    }
    return 1;
    }


    Dann sollte es klappen, sofern paydaytimer() korrekt aufgerufen wird.

    Suche einfach mal wie gesagt nach SpawnPlayer, dort wo dir die Registrierung angezeigt wird. Zeigt es dir die Registrierung in der normalen class selection an, oder nicht? Wenn nicht, und du wirst dann gekickt, dann liegt es am dem wie ich gesagt habe.


    Zwecks dem ackslimit, schau mal in dem Server Log was da steht wenn du gekickt wirst. Steht da was?

    Sind das Textdraws die für jeden Spieler anders aussehen, also einen anderen Text haben? Wenn ja, erstelle sie als PlayerTextDraw.


    Ansonsten, zeig mal wie du den Timer startest, also das Verbindung Callback aufrufst.

    Wie sieht es aus, wenn du das Textdraw mit Index 8 mit dem mit Index 9 (welches nicht angezeigt wird) mal vertauschst?
    TextDraws[TDSpeedClock][8] = TextDrawCreate(548.000000,401.000000,".");
    TextDraws[TDSpeedClock][9] = TextDrawCreate(534.000000,396.000000,"~g~/ ");


    und:
    TextDrawLetterSize(TextDraws[TDSpeedClock][8], 0.73, -2.60);
    TextDrawLetterSize(TextDraws[TDSpeedClock][9], 1.059999, 2.100000);


    (Und natürlich sonst noch bei allem, wo die beiden verwendet werden, 8->9 und 9->8.)
    Fehlt dann der Strich, oder noch immer der Punkt?

    Edit: mit += funktionierts o.0. Naja dachte immer das floatadd ein muss ist. Da habe ich mich wohl


    Zum Teil funktionieren diese "float"-Funktionen nicht, oder nicht richtig, wie so vieles in SA-MP.
    Generell kannst du aber auf alle dieser Funktionen verzichten, da alles (auch mit Floats) mit den mathematischen Operatoren machbar ist. Nur floatround macht manchmal Sinn, wenn man eben eine Zahl runden möchte.
    Aber wenn es klappt, passt es ja! :)

    Wie hast du _guthaben und pHandyGuthaben deklariert?
    Beide als "Float:"? Wenn nicht, macht das.


    PlayerInfo[playerid][pHandyGuthaben] += _guthaben;


    Dann würde es auch so gehen.

    Dann dürfte es so passen:


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    if(Praxis[playerid] == 1)
    {
    CheckpointStatus[playerid]++;
    new string[128];
    if(CheckpointStatus[playerid] < MAX_RACE_POINTS-1)
    {
    format(string, sizeof(string),"Status: %d/22", CheckpointStatus[playerid]);
    PlayerTextDrawSetString(playerid,Textstatus[playerid],string);
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    else if(CheckpointStatus[playerid] == MAX_RACE_POINTS-1)
    {
    format(string, sizeof(string),"Status: %d/22", CheckpointStatus[playerid]);
    PlayerTextDrawSetString(playerid,Textstatus[playerid],string);
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,1,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],3.0);
    }
    else
    {
    Praxis[playerid]= 0;
    CheckpointStatus[playerid] = 0;
    KillTimer(speedTimer[playerid]);
    format(string,sizeof(string),"Du hast %d / 3 Verwarnungen!",playerWarn[playerid]);
    SendClientMessage(playerid, warn,string);
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    }
    return 1;
    }