Beiträge von Jeffry

    Beim Beginn zu Hacken:
    hackTimer = SetTimerEx("TorHacken", 20000, 0, "d", 1);


    Und das hier ganz unten im Gamemode:
    forward TorHacken(count);
    public TorHacken(count)
    {
    new str[145];
    switch(count)
    {
    case 1: format(str, sizeof(str), "Es sind noch 1:40 zu warten...");
    case 2: format(str, sizeof(str), "Es sind noch 1:20 zu warten...");
    case 3: format(str, sizeof(str), "Es sind noch 1:00 zu warten...");
    case 4: format(str, sizeof(str), "Es sind noch 0:40 zu warten...");
    case 5: format(str, sizeof(str), "Es sind noch 0:20 zu warten...");
    case 6: format(str, sizeof(str), "Offen!");
    }
    if(count < 6) hackTimer = SetTimerEx("TorHacken", 20000, 0, "d", count+1);
    SendClientMessageToAll(0xFFFFFFFF, str); //Hier eben nur an die Fraktion senden, oder wo es eben hingehen soll.
    return 1;
    }

    new pickstr[] = "ABCDEFGH0123456789";
    new endstr[11], rand;
    for(new i=0; i<sizeof(endstr); i++)
    {
    rand = random(strlen(pickstr));
    format(endstr, sizeof(endstr), "%s%c", endstr, pickstr[rand]);
    strdel(pickstr, rand, rand+1);
    }


    In endstr steht dann sowas wie: 604A73HEC1

    Beim Laden der Fahrzeuge vor:
    SetVehicleNumberPlate(cInfo[id][id_x],cInfo[id][kennzeichen]);
    das hier einfügen:
    cache_get_field_content(i,"kennzeichen",cInfo[id][kennzeichen],dbhandle,16);


    Das Fahrzeug muss natürlich auch erstellt werden.

    new str[10] = "abcdefgh";
    new buchstabe = str[random(strlen(str))];
    new buchst_str[2], bool:failed;
    format(buchst_str, 2, "%c", buchstabe);
    if(strfind(string, buchst_str) != -1)
    {
    failed = true;
    for(new i=0; i<strlen(str); i++)
    {
    format(buchst_str, 2, "%c", str[i]);
    if(strfind(string, buchst_str) == -1)
    {
    buchstabe = str[i];
    failed = false;
    format(string, sizeof(string), "%s%c", string, buchstabe);
    break;
    }
    }
    }
    else
    {
    format(string, sizeof(string), "%s%c", string, buchstabe);
    }
    if(failed) return SendClientMessage(playerid, 0xFF0000FF, "Error: Alle Buchstaben belegt.");
    //In "buchstabe" steht dann der gefundene Buchstabe, falls nicht alle belegt sind.

    if(ptor == 0)
    Zu
    if(!ptorStatus)


    Deklariere es unter new ptor so:
    new bool:ptorStatus;


    Und füge das zum Befehl dazu, nach dem MoveObject:
    ptorStatus = !ptorStatus;

    Möglicherweise zählst du beim Laden das "d" im Index nicht hoch, sprich alle Werte werden nur in d=0 geschrieben, also überschrieben.


    Schau mal ob da ein
    d++;
    zu finden ist. Wenn nicht, füge es nach dem erstellen des Objektes hinzu.


    Nein, da immer noch eine Animation ausgeführt wird, wenn man G drückt.


    Daran hab ich gar nicht gedacht. Dann fällt das weg.


    selbst das Freezen der Animation selbst nicht hilft


    Nein, das hast du falsch verstanden. Man freezt nicht die Animation, sondern man freezt und entfreezt den Spieler (damit er nicht einsteigen kann) und startet danach die Animation erneut.

    Starte die Animation einfach direkt wieder, wenn er sie abgebrochen hat.
    Das kannst du entweder bei OnPlayerUpdate mit GetPlayerAnimationIndex abfragen, oder bei OnPlayerEnterVehicle direkt wieder setzen, sprich TogglePlayerControllable zu false, dann wieder zu true und dann direkt die Animation wieder starten. Um zu verhindern, dass er gleich wieder einsteigen kann und immer wieder, kannst du das Fahrzeug für den einen Spieler dann abschließen, dann wird auch das verhindert.


    Alternativ kannst du, wenn du die Animation startest, alle Fahrzeuge für den Spieler abschließen, dann hat sich das Problem komplett erledigt.

    Achso, ja gut, was genau funktioniert nicht? Könntest du etwas genauer sein?
    Möglicherweise nutzt du nicht die neuste Version von SA-MP. Kommt darauf an was für einen Fehler du bekommst, bzw was nicht funktioniert.

    for(new d = 0; d < sizeof(DerbyObjects); d++)
    {
    DestroyDynamicObject(DerbyObjects[d][DObjectID]);
    printf("FUCKER!: %i", DerbyObjects[d][DObjectID]);
    }


    Das break hat die Schleife beendet.