1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
So: 25 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Abfragen, wie viele Spieler inhaftiert sind

    • perx
    • 23. Juli 2017 um 13:38
    • Geschlossen
    • Erledigt
    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 23. Juli 2017 um 13:38
      • #1

      Hey,

      ich möchte, dass ein Script nur funktioniert, wenn z.B mehr als 2 Personen in diesem Moment im Gefängnis sitzen.
      Da fielen mir zwei Sachen ein:

      1. Einfach Abfragen, wer sich z.B in der Gegend des Gefängnisses aufhält und diese zählen lassen oder

      2. Aus der Datenbank abfragen, wie viele dort inhaftiert sind.

      Ich glaube, Option 2 wäre auf jeden Fall logischer, jedoch weiß ich nicht genau wie ich dies in meinem Script abfragen kann bzw. Ob der dann nicht auch Spieler, die nicht Online sind mitzählt.


      Hat jemand eine Ahnung, wie ich das am besten Lösen könnte?

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • Stig
      Profi
      Reaktionen
      598
      Trophäen
      9
      Beiträge
      941
      • 23. Juli 2017 um 14:14
      • #2

      Du könntest mit setVariable dafür sorgen, dass du von jedem Spieler mit getVariable abfragen kannst, ob er im Knast ist (life_is_arrested und fn_jail.sqf sind da gute Ansatzpunkte).

      Dann könntest mit

      count(allPlayers select {_x getVariable ["arrested_or_whatever",false]})

      abfragen, wie viele im Knast sind.

      Diese Nachricht wurde automatisch generiert. Antworten auf diese Nachricht können nicht empfangen werden. Bitte wenden Sie sich mit Anliegen an einen Administrator.

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 23. Juli 2017 um 14:15
      • #3

      Stig Geht auch einfacher:

      ({ (_x getVariable ["arrested_or_whatever", false]); } count allPlayers);

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 23. Juli 2017 um 15:12
      • #4
      Zitat von script /Vincent/dev/null

      Stig Geht auch einfacher:

      ({ (_x getVariable ["arrested_or_whatever", false]); } count allPlayers);

      ich denke aber Stigs Variante ist Performanter

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 23. Juli 2017 um 15:46
      • #5

      nflug Das bezweifle ich stark. Bei Stig 's Code werden 2 Kommandos ausgeführt. Bei dem Beispiel meinerseits nur ein Kommando ausgeführt.

      Ich frage mich weshalb Stigs Beispiel mehr Performance ergeben soll.

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 23. Juli 2017 um 23:09
      • #6
      Zitat von script /Vincent/dev/null

      nflug Das bezweifle ich stark. Bei Stig 's Code werden 2 Kommandos ausgeführt. Bei dem Beispiel meinerseits nur ein Kommando ausgeführt.

      Ich frage mich weshalb Stigs Beispiel mehr Performance ergeben soll.

      Ich möchte eigentlich garnicht diskutieren da alles beantwortet ist denke ich egal welche Art. Bei deiner Variante wird aber für jeden Spieler einmal abgefragt ob er dir Variable hat. Bei Stigs werden jediglich die rausgepickt die, die Variable haben.

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • Stig
      Profi
      Reaktionen
      598
      Trophäen
      9
      Beiträge
      941
      • 23. Juli 2017 um 23:24
      • #7

      nflug

      Ich will dich ja nicht enttäuschen, aber ich glaube auch das Vincents Vorschlag minimal schneller ist:

      Bei mir wird für jedes allPlayers-Array Element die Abfrage durchgeführt und wenn positiv, wird das jeweilige Element in das Array kopiert, das "select" zurückgibt. Dann wird die Größe vom select-Array ermittelt.

      Bei Vincent wird eine für jedes allPlayers-Array Element die Abfrage durchgeführt und wenn positiv, wird ein Zähler erhöht.

      (Falls Bohemia das auch so programmiert hat...)

      Wenn ihr das genau wissen wollt, könnt ihr es ja testen^^ https://community.bistudio.com/wiki/BIS_fnc_codePerformance

      Aber man sollte nicht vergessen, dass es sich hier um weniger als eine Millisekunde handeln wird, zudem wird der Code wahrscheinlich nicht wiederholend ausgeführt und wahrscheinlich irgendwo nach einem Klick in einem Dialog (also nicht an einem Zeitpunkt, wo Performance wichtig ist).

      Diese Nachricht wurde automatisch generiert. Antworten auf diese Nachricht können nicht empfangen werden. Bitte wenden Sie sich mit Anliegen an einen Administrator.

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 23. Juli 2017 um 23:28
      • #8
      Zitat von nflug

      Ich möchte eigentlich garnicht diskutieren da alles beantwortet ist denke ich egal welche Art. Bei deiner Variante wird aber für jeden Spieler einmal abgefragt ob er dir Variable hat. Bei Stigs werden jediglich die rausgepickt die, die Variable haben.

      nflug  Stig Es werden bei select aber auch alle Items in eine Schleife gepackt. Dies kann einfach bewiesen werden: allPlayers select { (systemChat str _x); true; };.

      Hierbei würden alle (Spieler in diesem Falle) aufgelistet werden.

      Hier noch einmal ein Performance-Test (selbst wenn die Differenz nicht allzu groß ist):

      C
      //Bei 12 platzierten Einheiten:
      //0.0148 ms
      count(allUnits select { (alive _x); });
      
      //0.0137 ms
      { (alive _x); } count allUnits;

      Mag zwar rechthaberisch wirken, aber wenn du schon was schreibst, dann auch mit "korrekten" Informationen. Dennoch schließe ich es nicht aus, dass selectoptimiert für eine Auswahl ist. Fraglich ist dabei jedoch, ob countnicht die selbe "select"-Funktion bei folgendem Syntax nutzt <condition> count <array>, da die "<condition>" denselben Effekt wie hier <array> select <condition> hat.

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 23. Juli 2017 um 23:37
      • #9

      perx Um wieder zurückzukehren: Ich bin leider nicht mehr in Altis Life eingearbeitet, aber das sollte für eine DB-Abfrage vielleicht ein Gedankenanstoß sein:

      SQL
      SELECT COUNT(*) FROM <playerTable> WHERE <Spalte inhaftiert> = '1'; /*Gibt folgendes zurück: [[<Anzahl>]]*/
    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 25. Juli 2017 um 19:15
      • #10

      Frage dir mir zuerst kommt willst du wissen wie viele Grade im Gefängnis Ingame sind oder Wie viel Eigentlich im Gefängnis sind auch die Ausgeloggten ?

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™