Beiträge von Jeffry

    Auf Anfrage in PN:


    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehID = vehID;
    if(vehID == YakuzaVehs[3] || vehID == YakuzaVehs[4] || vehID == YakuzaVehs[9])
    {
    if(PlayerInfo[playerid][pRank] < 2)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_RED,"Du besitzt nicht Rank 2");
    }
    }
    }


    Es hat eine Klammer gefehlt, in der letzten Zeile. Ich habe den ganzen Aufbau auch noch verbessert.

    Dein Code ist etwas chaotisch aufgebaut, ich habe mir den Code gut 20 Minuten angeschaut und blicke immer noch nicht wirklich durch, liegt wahrscheinlich auch daran, dass nicht alles vorhanden ist. Egal, ich versuche es dir nochmal zu erklären, dann versuchst du es zu realisieren:


    Du musst, bevor du den Spieler automatisch einloggen lässt, noch abfragen, ob der Spieler in der Datenbank in der du die Statistiken speicherst mit dem Stat "Autologin = 1" existiert. Wenn ja, dann kannst du ihn einloggen, wenn nein, dann muss er sich selbst einloggen.
    Diese Abfrage machst du wie die anderen auch (nimm dir ein Beispiel an der Abfrage ob der Spieler in der Datenbank mit den IPs drin ist).


    Warum musst du das machen?
    Weil du es noch nicht machst, bei "case _SQL_ACCOUNT_AUTOLOGIN:". Du musst also noch einen case machen, und dazwischen abfragen, ob der Spieler Autologin an hat, indem du in der Datenbank nachschaust (die Variable kannst du ja nicht nutzen, weil die erst mit dem Login geladen wird, zuvor bringt es nichts wenn du sie abfragst, sie wird 0 sein).


    Versuche es bis morgen Nachmittag selbst zu lösen. Wenn du es nicht hinbekommst, poste bitte den gesamten dazugehörigen Code und markiere den Startpunkt, wo der Code anfängt.

    Wie sieht der aktuelle Code aus?
    Hast du auch Daten in der Datenbank?
    Du könntest auch einfach den Code von deinem ersten Post nehmen und die Änderungen machen, die ich dir gesagt habe, dann sollte es gehen.

    [16:02:03] Created: 1 | ID: 0 | pos: 1520.010009,-1592.219970,1422.010009,-1718.219970 | j: 0 | content: Ballas


    Schau dir doch die Koordinaten hier an. Zuerst kommen die großen, dann die kleinen. Es muss aber genau anders herum sein. Erst die kleinen, dann dir großen.


    Versuche es doch einfach mal.

    Gut, wenn es richtig lädt passt es ja mal soweit.
    Dein Print zeigt jetzt, dass die Variablen vertauscht sind.


    Mach es so:
    gZone[j][zID] = GangZoneCreate(gZone[j][zPos][2], gZone[j][zPos][3], gZone[j][zPos][0], gZone[j][zPos][1]);


    Und anstatt den 0 bei den Cache Abfragen, muss ein i hin.


    Edit:
    Das muss so sein, damit es nicht zwei mal erstellt wird.
    if(j == num[0]-1)break;

    So wie das aussieht, fragst du nur ab ob der Spieler einen Eintrag in der Datenbank hat, in der die letzte IP steht. Die AutoLogin Variable wird erst geladen, nachdem du eingeloggt bist.



    => Du musst nach der Prüfung ob die IP gleich ist auch noch prüfen, ob der Spieler die Einstellung an/aus hat.

    Kommen die Sachen denn, wenn du es "normal" erstellst, also ohne den Streamer (CreatePickup / Create3DTextLabel)?
    Falls ja, liegt es am Streamer.
    Falls nein, versuche es mal auf einem leeren Server, einfach irgendwo ein Pickup/Label anzuzeigen. Wenn es da geht, hast du wohl das Limit erreicht.

    Dein Print ist falsch, da fehlt die 4. Koordinate.


    printf("Created: %d | ID: %d | pos: %f,%f,%f,%f | j: %d | content: %s", gZone[j][zCreated], gZone[j][zID], gZone[j][zPos][0], gZone[j][zPos][1], gZone[j][zPos][2], gZone[j][zPos][3], j, gZone[j][zName]);
    So.

    public CheckKH()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && GetPVarInt(i,"Krankenhaus") == 0) //IsPlayerConnected Abfrage!!
    {
    TogglePlayerControllable(i,1);
    SetPVarInt(i,"Krankenhaus",-1);
    SetCameraBehindPlayer(i);
    DestroyPickup(TodesPickup[i]);
    Delete3DTextLabel(Todes3DText[i]);
    SetPVarInt(i,"Krankenhaus",-1);
    switch(pInfo[i][Fraktion])
    {
    case 0:
    {
    SetPlayerPos(i,noobspawn);
    }
    case 1:
    {
    SetPlayerPos(i,lspdspawn);
    }
    case 2:
    {
    SetPlayerPos(i,lsvspawn);
    }
    case 3:
    {
    SetPlayerPos(i,medicspawn);
    }
    }
    }
    if(GetPVarInt(i,"Krankenhaus") > 0) SetPVarInt(i,"Krankenhaus",GetPVarInt(i,"Krankenhaus")-1);
    }
    return 1;
    }


    Und bei OnPlayerConnect:
    SetPVarInt(playerid,"Krankenhaus",-1);


    Es können natürlich noch mehr Fehler an anderen Stellen sein.

    Die Audionachrichten liegen alle im MP3 Format auf dem Server. Diese Nachrichten sollen lediglich ab einer bestimmten Position im "Rundgang" abgespielt werden.. reicht es da, einfach "wenn in Rangepoint +/- 10... starte Stream"?!?


    Generell ja.


    Du musst eben mit einem Timer prüfen, ob der NPC und der Spieler an dieser Position bzw. nahe dieser Position sind. Wenn beide dort sind, kannst du den Stream laufen lassen. Wenn nicht, musst den Stream stoppen. Falls der Bot immer die gleiche Strecke fährt, könnte man es auch mit Timern machen.


    Deine Idee ist vom Ansatz her absolut richtig.

    Hast du den Server mit gmx neu gestartet, oder hast du den Server komplett durchgestartet, also die Konsole beendet und neu geöffnet?
    Wenn du es mit gmx machst ist es klar, weil das die Filterscripts nicht neu lädt. Ich rate dir immer den Server komplett zu schließen.

    Du musst die Textdraws korrekt löschen, dazu gehört auch, dass du die Variablen zurücksetzt.


    if(TextDraw[playerid] != Text:-1) TextDrawDestroy(TextDraw[playerid]);
    TextDraw[playerid] = Text:-1;


    Das musst du so bei allen machen. Ebenso muss du die als -1 initialisieren:
    new TextDraw[MAX_PLAYERS] = {-1,...}; //Die drei Punkte sollen da sein.


    Wenn du das für alle TextDraws überall einhältst, hast du keine Probleme mehr.

    Auf Nachfrage:


    Ich weiß leider auch nicht an was das noch liegen könnte.
    Du könntest höchstens mal versuchen einen leeren Server zu starten und nur das Streamer Plugin zu laden. Funktioniert das?
    Wenn das auch nicht geht ist wohl irgendwas an deinem Rechner.


    Hast du schonmal den ganzen Server Ordner auf einen anderen Rechner gezogen, geht es da?