Beiträge von Bluescreen

    Ich habs mir jetzt angeschaut und zwar sind deine Fehler du setzt ihn ins Paintball auch wenn er nicht genügen Geld hat -> diesen Code dort einfügen wo er ins Paintball Teleportiert werden soll.


    ocmd:pbenter(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,1421.74, -1179.36, 25.32))
    {
    if(GetPlayerMoney(playerid)>3000)
    {
    Spieler[playerid][Paintball] = 1;
    SetPlayerPos(playerid,-975.975708,1060.983032,1345.671875);
    SetPlayerInterior(playerid,10);
    PayPlayerMoney(playerid, -3000);
    SendClientMessage(playerid,BAIGE,"Du hast die Paintball Arena betreten. [-3000$]");
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,24,500);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,HELLROT,"Dein Geld reicht nicht aus. Du brauchst mind. 3000§");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,GELB,"Du bist nicht an der Paintball Arena!");
    return 1;
    }
    return 1;
    }
    Da man mit deinem Code rein kommt egal wie viel Geld man hat.

    Wenn dein Subwoofer nicht zu Groß ist und du ihn Leicht hochheben kannst, solange rum heben bzw. umdrehen bis sie raus kommt.
    Ich hatte mal fast das gleiche bloß bei mir war es mehr als eine Softair Kugel :D


    p.s. Wenn dein Subwoofer empfindlich ist solltest du es lieber nicht machen, dann hast du nur noch Aufschrauben.

    Such dein Script nach SetTimerEx nach und suche dann den public dazu und wenn ein public einen riesigen Code hat Poste ihn mal hier vielleicht liegt es am Code der jede x ms ausgeführt wird.

    Okay, dann schau dir mal dieses Tutorial an: [ SCRIPTING ] Simples Haussystem
    Wenn du irgendwelche Probleme bekommst, kann ich dir gerne Helfen habe erst vor kurzem meins fertig bekommen und denke das ich dir bei einigen Sachen helfen könnte.

    Wenn du nicht alle 10 Sekunden alle Accounts Speicherst sondern nur beim Verlassen des Server dann müsste es gar nicht laggen wenn das komplette Script ressorucen freundlich Geschrieben ist, aber wenn es ressourcen fressend Geschrieben ist dann kann es ab ca. 60 - 80 Spielern laggen, es kommt zu 70% auf das Script an, 20% an die Server Leistung und 10% an der Speichermethode.


    edit: kleine theorie mit den Prozenten muss aber nicht stimmen

    Er meint diese Ampeln (1315) und ja kannst du einfach mit dem SA:MP Map Editor herumfliegen Ampeln Suchen und dann Entfernen, aber Achtung du kannst maximal 1.000 Objekte Entfernen und wenn du keinen Streamer benutzt sondern die Objekte mit CreateObject erstellst dann ist es noch weniger Objekte die du Entfernen kannst.

    Es muss nicht unbedingt dran liegen das du zu viele Timer hast es kommt einfach drauf an ob du extra einen Timer hast der abfragt ob der Spieler an diesem Punkt ist oder irgendetwas bestimmtes machst, solche Timer kannst du aufjedenfall zusammenfassen und was sehr wichtig ist die Timer beim Offline gehen zu Killen da es ansonsten zu Bugs evtl. auch Laggs führen kann, den dann wird ein Timer noch immer ausgefüht obwohl der Spieler nicht mehr auf dem Server ist

    Ich denke das du mit dem "IsPlayerInAnyVehicle die Model IDs haben willst und nicht die Fahrzeug ID auf dem Server..


    public fwtor1(playerid)
    {
    new vehicleid - GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vehicleid) == 407 || (GetVehicleModel(vehicleid) == 544 || (GetVehicleModel(vehicleid) == 489)))
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1123.20, -1206.80, 19.5000000))
    {
    MoveObject(fw1, 1123.20, -1206.80, 13.88, 2.5);
    SendClientMessage(playerid, RED, "Zentrale: Tor Wird Geöffnet!");
    SetTimer("closegate", 10000, 0);
    }
    return 1; // nicht in reichweite


    }
    return 1; // Nicht in Fahrzeug 407 544 und 489
    }


    So müsste es nunr funktionieren wenn die Fahrzeug Model ID in der nähe ist

    Bei OnPlayerStateChange gibt es keine Fahrzeug ID das dieser Public aufgerufen wird wenn jemand im Auto sitzt, hier musst du dir die Fahrzeug ID mithilfe von GetPlayerVehicleID holen, dann müsste alles funktionieren.
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432 && GetPlayerScore(playerid ) < 60)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,HELLROT,"AdmCmd: Dein Rank reicht nicht aus, damit Du dieses Fahrzeug fahren kannst!");
    return 1;
    }
    return 1;
    }

    Du darfst den Code von Strassensound nicht bei OnPlayerEnterVehicle Schreiben sondern bei OnPlayerStateChange:


    if(GetVehicleModel(vehicleid) == 432 && GetPlayerScore(playerid ) < 60)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,HELLROT,"AdmCmd: Dein Rank reicht nicht aus, damit Du dieses Fahrzeug fahren kannst!");
    return 1;
    }


    Manniac, ich bitte dich überleg doch erstmal was du da Postest bevor du es dann zig male noch editieren musst

    Relativ einfach, mit der Zeit kannst du das alleine man muss es bloß probieren :)


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(GetVehicleModel(vehicleid) == 432) && !ispassenger)
    {
    if(GetPlayerScore(playerid) > 60)
    {
    return 1;
    }
    else
    {
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,FARBE,"Du darfst den Panzer nicht Fliegen!!");
    }
    }
    return 1;
    }


    edit: Fail Abfrage

    Mach eine Funktion (stock) wo GetRangName(playerid) heißt und Schreibe dort dann alle Fraktionsränke rein am besten alle Ränke in eine Variable packen und dann abfragen in welche Fraktion er ist und welchen Rank er hat (mit switch), um es besser zu Erklären:


    stock GetRangName(playerid)
    {
    new rangname[64];
    if(PlayerInfo[playerid][Member] == 1)
    {
    switch(PlayerInfo[playerid][FraktionRang])
    {
    case 0: {rangname = /*Deine Variable in der du Fraktionrank 1 hast*/}
    case 1: {rangname = /*Deine Variable in der du Fraktionrank 2 hast*/;}
    case 2: {rangname = /*Deine Variable in der du Fraktionrank 3 hast*/;}
    case 3: {rangname = /*Deine Variable in der du Fraktionrank 4 hast*/;}
    case 4: {rangname = /*Deine Variable in der du Fraktionrank 5 hast*/;}
    }
    }
    return rangname;
    }
    Wenn du das hast müsste dein Fraktionschat mit Rank Name funktionieren

    Du musst beim Server Restart auch alle Spieler Speichern sonst wird er immer auf 0 gesetzt und daraus folgt das du den CJ Skin beim reconnecten hast:


    for(new i=0; i < GetMaxPlayers(); i++)
    {
    SpielerSpeichern(i);
    }