Beiträge von Jeffry

    Dann liegt der Fehler woanders. Zeig mal wie du das Objekt erstellst.


    Übrigens, sehe ich grade, das macht man eigentlich nicht so, außer du hast einen speziellen Grund:
    if(newkeys == KEY_CTRL_BACK)
    macht man generell so:
    if(newkeys & KEY_CTRL_BACK)


    EDIT: Ah, du hast es oben hingemacht. Moment.
    EDIT2:
    Wie beschrieben, so tut es bei mir:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_CTRL_BACK)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,1284.8000488,-1652.1999512,17.0000000))
    {
    static ou;
    if(ou==0)
    {
    MoveObject(garage[0],1284.8000488,-1652.1999512,17.0000000-10,5);
    ou=1;
    }
    else if(ou==1)
    {
    MoveObject(garage[0],1284.8000488,-1652.1999512,17.0000000,5);
    ou=0;
    }
    }
    return 1;
    }
    return 1;
    }

    Ich kenne das System nicht, aber ich kann mir gut vorstellen, dass es die Einstellungen speichert wenn du den Server schließt.
    Versuch es mal so, das funktioniert eigentlich immer, sofern kein Script Fehler vorliegt:


    Server schließen und aus lassen => Config Datei von Junkbuster öffnen => Spectate Hack zu 0 setzen => Speichern => Server starten

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == grovefahrzeuge(vehicleid)) //Eine ) gefehlt
    {
    if(!isPlayerinFrakt(playerid,1)) //ebenso
    {
    SendClientMessage(playerid,rot,"Dieser Wagen gehört der Grove Street");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }


    140:
    if(!isPlayerinFrakt(playerid,1)) //Auch die )
    {
    SendClientMessage(playerid,rot,"Dieser Wagen gehört der Grove Street");
    RemovePlayerFromVehicle(playerid);
    }

    Versuch es mal mit den Angaben, die in meinem Post in dem topic, das ich dir gegeben habe, stehen.
    Normalerweise ist localhost und 127.0.0.1 das gleiche, wobei ich es auf Linux auch schon hatte, dass das das Problem war.

    if(isPlayerinFrakt(playerid,2,7,9))
    zu:
    if(isPlayerinFrakt(playerid,2) || isPlayerinFrakt(playerid,7) || isPlayerinFrakt(playerid,9))

    dcmd_auftrage(playerid, params[])
    {
    #pragma unused params
    new count;
    if(SInfo[playerid][pLeader] == 11 || SInfo[playerid][pMember] == 11)
    {
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    if(SInfo[i][pKopfgeld] > 0)
    {
    new namexddd[MAX_PLAYER_NAME];
    GetPlayerName(i,namexddd,sizeof(namexddd));
    format(str,sizeof(str),"[ID]: %d [Name]: %s [Preis]: %d",i,namexddd,SInfo[i][pKopfgeld]);
    SendClientMessage(playerid,Gelb,str);
    count++;
    }
    }
    if(count == 0) return SendClientMessage(playerid,COLOR_RED,"Es gibt keine Aufträge!");
    }
    return 1;
    }


    Wir zählen die Aufträge, wenn es 0 sind sind keine vorhanden.

    Achso, könnte ich deinem Post nicht entnehmen. ^^
    Dann würde ich das Plugin empfehlen. Da bleiben "nur" die deutschen Proxies übrig, außer du kannst dir eine eigene Seite schreiben, die Proxies erkennt, das weiß ich aber nicht wie.

    Relativ zuverlässig, wenn man Proxies aus dem Spiel nimmt.


    Idee:
    Wenn du nur deutsche Spieler haben willst, lass doch den Spieler einfach eine Frage beantworten, oder eine Art Captcha:
    Hallo, etwas bla bla, ...
    wenn du auf diesem Server spielen willst, dann bestätige bitte durch die Eingabe des Captchas, dass du deutsch bist oder verstehst:
    Schreibe folgende Buchstaben in das Feld:
    Den ersten Buchstaben unseres Landes
    Den dritten Buchstaben des Alphabets
    Den drittletzen Buchstaben des Alphabets
    Der Buchstabe der im Wort Hydra auf den zweiten Buchstaben folgt.


    => DCXD


    Wenn falsch => Ban.
    Somit kannst du sicher sein, dass der Spieler Deutsch spricht. (Auch nicht 100%, er könnte ja Google Translator nehmen, da würde ich eben die Grammatik so umstellen, dass der Translater durcheinander kommt.)

    format(str, sizeof(str), "%s{0069FF}Slot ID: {FAFAFA}%d | {0069FF}Fahrzeugname: {FAFAFA}%s\n",str,i,besetzt);
    Beachte dabei, dass str eine ziemlich große Array-Größe braucht.

    Simon:
    Setze dort wo der Code (Timer) beginnt, also direkt nach dem public:
    new t = GetTickCount();


    und ganz unten, vor dem return, bzw. vor der letzten Klammer:
    printf("Code Zeit: %dms", GetTickCount()-t);


    Dann weißt du genau wie lange dein Code braucht und ob er laggt.


    Deine Timer sollten eigentlich kein Problem sein, außer du öffnest viele Dateien, bzw. lässte viele Queries durchführen. Lass dir einfach mal die Zeit ausgeben. Alles was zwischen 0ms und 15-20ms ist passt völlig, wenns mehr ist sollte der Timer nicht ganz so oft aufgerufen werden, also nicht 5 mal in der Sekunde, sondern nur jede 2. Sekunde oder so, je nach Wichitgkeit des Codes.

    Was ist die beste und einfachste art die floats des veh speedes rauszulesen(tacho)


    http://forum.sa-mp.com/showpost.php?p=1494223&postcount=3


    Als Float eben so:
    stock Float:GetPlayerSpeed(playerid)
    {
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid))
    GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
    return ST[3];
    }

    Ich hab es jetzt schon getestet, und es ist gar nicht so einfach wie ich mir das dachte. Ich verschiedene Varianten getestet, und hab es auch hinbekommen, dass das Auto 135 fährt, aber hab es nicht mehr abbremsen können. Ich hab leider nicht die Zeit dazu das komplett durchzutesten und zu optimieren, dass es auch tut. Vielleicht im Laufe der Woche, wenn, dann würde ich mich bei dir melden.
    Auf die Schnelle ist da aber leider nichts zu machen.