Ramfa schmeißt alle leute aus den Autos & VPN vom Server weghalten

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo liebe Scripter,
    Ich habe ein Problem,
    ich habe die ganzen Frakcars vom Script gelöscht und alle mit /efa gesetzt.
    Da jetzt das Problem mit /ramfa auftaucht, das jetzt alle benutzen Fahrzeuge auch von anderen Fraktionen respawnt werden, wollte ich euch fragen
    Ob ihr mir helfen könnt, das zu lösen, das die unbenutzen Fahrzeuge nur respawnt werden..


    if(strcmp(cmdtext,"/ramfa",true)==0){
    if(GetPlayerLeader(playerid)){
    if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1])
    return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '5' Minuten respawnen.");
    LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*5);
    for(new fc;fc<sizeof(FactionCars);fc++){
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
    DestroyAndCreateFactionCar(fc);
    }
    }SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
    return true;
    }


    /edit


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • musst einfach nur eine Fahrzeug Variable erstellen, die 1 oder 0 hat, bei OnPlayerStateChange stellst du dies auf 1 und bei dem befehl fragst du nach der Variable.

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Du kannst einfach mit einer Abfrage abfragen ob Spieler im Fahrzeug sind.


    MfG

  • Dafür gibt es die Funktion
    stock IsVehicleInUse(vehicleid)
    {
    for(new i; i != MAX_PLAYERS; i++)
    {
    if(GetPlayerVehicleID(i) == vehicleid)
    {
    return i;
    }
    }
    return INVALID_PLAYER_ID;
    }
    (Aus den englischen Forum gezogen)


    Und dann schreibst du deinen Befehl so:
    if(strcmp(cmdtext,"/ramfa",true)==0){
    if(GetPlayerLeader(playerid)){
    if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1])
    return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '5' Minuten respawnen.");
    LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*5);
    for(new fc;fc<sizeof(FactionCars);fc++){
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
    if(IsVehicleInUse(FactionCars[fc][ /* Hier muss die ID des Fahrzuges sein*/]))continue;
    DestroyAndCreateFactionCar(fc);
    }
    }SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
    return true;
    }

    All in all it's just another brick in the wall

  • if(IsVehicleInUse(FactionCars[fc][ /* Hier muss die ID des Fahrzuges sein*/]))continue;

    ich habe da alles versucht vehicleid und fVehid klappt immernoch net was muss da hin?
    Wenn ich Carid drinne habe, wird die ID respawnt in der ich sitze...


    //e ich habe da noch eine Frage, wie kann man VPN vom Server halten, also wenn jetzt jemand mit VPN draufkommt, das er nicht connecten kann?


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    2 Mal editiert, zuletzt von Kevin_CaruZo ()

  • Die Funktion ist nicht richtig. So ist es richtig:
    stock IsVehicleInUse(vehicleid)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerVehicleID(i) == vehicleid)
    {
    return true;
    }
    }
    return false;
    }



    if(strcmp(cmdtext,"/ramfa",true)==0)
    {
    if(GetPlayerLeader(playerid))
    {
    if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1]) return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '5' Minuten respawnen.");
    LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*5);
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611) //Wenn das Fahrzeug existiert
    {
    if(FactionCars[fc][fFrakid] == GetPlayerFaction(playerid)) //Wenn es der Fraktion angehört, in der der Spieler ist
    {
    if(!IsVehicleInUse(FactionCars[fc][fCarid])) //Wenn niemand drin ist
    {
    DestroyAndCreateFactionCar(fc); //Oder FactionCars[fc][fCarid] ?
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    }
    else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
    return 1;
    }

    • Offizieller Beitrag

    Um VPNs zu blockieren kannst du in Grunde entweder ne Funktion basteln welche die IP der sich verbundenen Spieler mit einer Liste vergleichen welche du selber füttern musst oder sofern du Shell Zugriff hast ein paar iptables Regeln anlegen


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Um VPNs zu blockieren kannst du in Grunde entweder ne Funktion basteln welche die IP der sich verbundenen Spieler mit einer Liste vergleichen welche du selber füttern musst oder sofern du Shell Zugriff hast ein paar iptables Regeln anlegen

    Und wie mache ich das mit iptables?


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    • Offizieller Beitrag

    Beispiel:

    Code
    iptables -A INPUT -s 116.10.191.0/24 -j DROP


    Natürlich musst du die Range anpassen an deine Bedürfnisse


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN