User Tag List

Ergebnis 1 bis 13 von 13

Thema: Serverconfig auslesen für Logic_Compare?

  1. #1
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0

    Serverconfig auslesen für Logic_Compare?

    Ich gebe ein Beispiel was ich meine:
    Sagen wir die Freezetime ist auf 20 Sekunden eingestellt.
    Wegen mapspezifischen Gründen darf sie aber nicht über 15 Sekunden liegen...
    Was tun?
    Ein logic_compare muss her! (kleiner Reim )
    Einfach 15 Sekunden, kk, alles gut... und dann als Vergleichswert?
    Etwa einfach mp_freezetime?
    Und dann einfach ein point_servercommand erstellen welches die freezetime auf 15 setzt.
    Problem: mp_freezetime will er nicht als Variable haben (er setzt einfach IMMER ... oder NIE die Freezetime auf 15)
    Okay, falls das unverständlich sein sollte, noch einmal eine andere Erklärungsversion für Informatiker:
    Ich will folgendes mappingtechnisch (also im Hammer) lösen:

    if mp_freezetime>15
    then mp_freezetime:=15

    Mein Problem ist einfach die Variable mp_freezetime irgendwie einzulesen.

    Ist jetzt nur Beispielhaft, sollte natürlich für alle anderen Werte (sv_airaccelerate etc) funktionieren.

    Falls mein Problem immer noch nicht klar ist -> nachfragen

    Achja, nicht zu vergessen: Hallo ihr

  2. #2
    Mitglied Avatar von Billkiller
    Registriert seit
    21.06.2010
    Beiträge
    393
    Renommee-Modifikator
    8
    Öhm ich versteh dein Problem nicht? Warum benutzt du nicht einfach ein logic_auto mit einem point_servercommand!?
    Ist doch nicht so schlimm wenn der Wert noch mal an den Server gegeben wird?

  3. #3
    Super-Moderator Avatar von Frontschwein
    Registriert seit
    18.06.2010
    Ort
    Chemnitz
    Alter
    26
    Beiträge
    571
    Renommee-Modifikator
    10
    Ich kann deine Nachsicht, bzw dein vorsichtiges Vorgehen mit servercommands verstehen, aber:

    Die Serverconfig wird bei jedem Mapchange neugeladen.
    Sprich, du musst nichts auslesen, sondern überschreibst einfach temporär Teile der serverconfig. Das ist nicht schlimm und auch nix Neues, das wird nunmal so gemacht
    Geändert von Frontschwein (13.08.2010 um 20:19:30 Uhr)
    Schieß die Welt an
    - Flakker

  4. #4
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0
    Naja, wenn Leute mit 5 Sekunden starten wollen, ist das für mich kein Problem... Warum sollte ich diese Zeit auf 15 Verlängern?
    Wenn Leute mit 30 Sekunden (übertrieben) freezetime starten wollen IST das ein Problem... Aber wie kann ich prüfen, ob sie jetzt mehr Zeit als 15 Sekunden haben oder weniger?

    Logic_auto bzw logic_relay deshalb nicht, da ich ja die freezetime nicht immer festnageln will, sondern nur wenn nötig..

    Zitat Zitat von Frontschwein Beitrag anzeigen
    Ich kann deine Nachsicht, bzw dein vorsichtiges Vorgehen mit servercommands verstehen, aber:

    Die Serverconfig wird bei jedme mapchange neugeladen.
    Sprich, du musst nichts auslesen, sondern überschreibst einfach temporär Teile der serverconfig. Das ist nicht schlimm und auch nix Neues, das wird nunmal so gemacht

    Soll ja dann nur für eine Maprunde sein (also wenn meine Map gestartet wird, auf anderen ist mir das egal, ich will ja nicht global den Server hacken bzw. dauerhaft beeinflussen, nur für die Map für welche die Einstellungen, die ich haben möchte wichtig sind... Das die nach Mapchange überschrieben werden ist mir klar und egal bzw. sogar erwünscht.)
    Geändert von Alife (13.08.2010 um 20:13:32 Uhr)

  5. #5
    Super-Moderator Avatar von Frontschwein
    Registriert seit
    18.06.2010
    Ort
    Chemnitz
    Alter
    26
    Beiträge
    571
    Renommee-Modifikator
    10
    Mir ist kein Weg bekannt (außer Mod), irgendwelche Werte aus der Config auszulesen. Du kannst nur überschreiben.
    Und dann is das auf deiner Map so, dass die Freezetime <15sek ist. Wenns dem Serverbetreiber nicht passt, kanner die Map nicht nutzen.
    Ich würd mir da keinen Kopf machen
    Schieß die Welt an
    - Flakker

  6. #6
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0
    Also, wenn man z.B. einfach in die Konsole "mp_freezetime" (ich bleibe bei dem Beispiel) eingibt, wird ja auch die jetzige Variable angezeigt. Also es wird geschrieben
    "mp_freezetime" = "15"
    ... Oder so ähnlich...
    Irgendwie muss es doch möglich sein, die 15 auszulesen und zwar für die Map als Variable für ein logic_compare...

    edit: Achja und ich mach mir halt nen Kopf... Für all die lieben Leute...

  7. #7
    Mitglied Avatar von damagefilter
    Registriert seit
    11.07.2010
    Ort
    Potsdam
    Beiträge
    363
    Blog-Einträge
    4
    Renommee-Modifikator
    8
    Es gibt kein Entity im CSS FGD welches die Fähigkeit hätte eine cfg Datei auszulesen.
    Das ist natürlich kein großes Ding, soetwas auszulesen.
    Aber so ein Entity gibt es trotzdem nicht.
    Sprich es gibt keine ... ich meine wirklich absolut keine Möglichkeit, an diese Variable ranzukommen.
    Und wie Frontschwein schon sagte ist das auch gar nicht notwendig.
    Wenn du mittels eines logic_auto und eines point_servercommand
    mp_freezetime 15 gibst dann reicht das völlig aus.
    Wenn dann irgendwann ne andere Map geladen wird is die Freezetime
    wieder so, wie sie vorher war.
    (Auch das hat Frontschwein bereits erwähnt. Aber ich möchte es gern nochmal sagen)

    //Ich meine das bestimmt nicht böse oder so.
    Ich will nur vermeiden dass du dir Tag und Nacht die Birne zerreibst für etwas,
    was bestätigtermaßen einfach nicht geht.
    Logic is an amazing thing ...
    for people that have it.

  8. #8
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0
    Zitat Zitat von damagefilter Beitrag anzeigen
    Es gibt kein Entity im CSS FGD welches die Fähigkeit hätte eine cfg Datei auszulesen.
    Das ist natürlich kein großes Ding, soetwas auszulesen.
    Aber so ein Entity gibt es trotzdem nicht.
    Sprich es gibt keine ... ich meine wirklich absolut keine Möglichkeit, an diese Variable ranzukommen.
    Und wie Frontschwein schon sagte ist das auch gar nicht notwendig.
    Wenn du mittels eines logic_auto und eines point_servercommand
    mp_freezetime 15 gibst dann reicht das völlig aus.
    Wenn dann irgendwann ne andere Map geladen wird is die Freezetime
    wieder so, wie sie vorher war.
    (Auch das hat Frontschwein bereits erwähnt. Aber ich möchte es gern nochmal sagen)

    //Ich meine das bestimmt nicht böse oder so.
    Ich will nur vermeiden dass du dir Tag und Nacht die Birne zerreibst für etwas,
    was bestätigtermaßen einfach nicht geht.
    Hab mir gestern schon den ganzen Tag den Kopf zerbrochen... >_>
    Grrrrrrrrrrr... Jetzt muss ich mir irgendwas anderes überlegen... Weil ich wie gesagt die Einstellungen nur verändern möchte, wenn es nötig ist...

    Danke trotzdem^^

    Achja, gibt es irgendwie irgendwas, was bestimmte Events merkt?
    Ergo: Bombe grade geplanted, Erster Spieler erschossen, Freezetime vorbei?

  9. #9
    Mitglied Avatar von Absolute
    Registriert seit
    21.06.2010
    Beiträge
    98
    Renommee-Modifikator
    7
    In einer meiner maps lese ich die Server Variablen aus (braucht aber eventscripts):

    point_servercommand mit dem command
    if (server_var(mp_freezetime) > 15) then do changelevel de_dust2
    changed jetzt zum beispiel die map auf de_dust2 wenn die freezetime >15 ist :p

    und wenn du mapinterne outputs abfeuern willst brauchst du folgende methode:
    es_set randomuser 0
    es_getuserid randomuser
    if (server_var(mp_freezetime) > 15) then do es_fire server_var(randomuser) <name des target entities> <input>

  10. #10
    Mitglied Avatar von damagefilter
    Registriert seit
    11.07.2010
    Ort
    Potsdam
    Beiträge
    363
    Blog-Einträge
    4
    Renommee-Modifikator
    8
    Ja.
    Das es mit eventscripts geht, das ist sicherlich keine Frage.
    Es geht aber darum dass du nicht erwarten kannst dass ein Server eventscripts installiert hat.
    (Die meißten haben schon, aber trotzdem nicht alle)
    Und wenn dann so ein Server aus versehen mal die Map spielt,
    dann fliegt das ganze Konzept über den Jordan.
    Und das is dann halt auch nicht das Maß aller Dinge.
    Obgleich das so natürlich ne sehr gute Lösung ist
    Geändert von damagefilter (14.08.2010 um 13:13:27 Uhr)
    Logic is an amazing thing ...
    for people that have it.

  11. #11
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0
    Zitat Zitat von damagefilter Beitrag anzeigen
    Ja.
    Das es mit eventscripts geht, das ist sicherlich keine Frage.
    Es geht aber darum dass du nicht erwarten kannst dass ein Server eventscripts installiert hat.
    (Die meißten haben schon, aber trotzdem nicht alle)
    Und wenn dann so ein Server aus versehen mal die Map spielt,
    dann fliegt das ganze Konzept über den Jordan.
    Und das is dann halt auch nicht das Maß aller Dinge.
    Obgleich das so natürlich ne sehr gute Lösung ist
    Genau das ist es... ich will keinerlei Plugins verwenden müssen... Wasn shice

  12. #12
    Mitglied Avatar von damagefilter
    Registriert seit
    11.07.2010
    Ort
    Potsdam
    Beiträge
    363
    Blog-Einträge
    4
    Renommee-Modifikator
    8
    Wie gesagt.
    Ich denke es gibt nativ keine solche Methode einfach aus dem Grund dass man, wenn man Servervars ändern will einfach
    ein servercommand Entity nutzen kann.
    Das zieht ja keinerlei Performance oder ähnliches und es stellt definitiv sicher dass auf deiner Map alles so ist wie es sein sollte.
    (Beim nächsten Mapchange setzen sich die Vars ja wieder zurück)
    Zu den Listenern ... ich glaube auch das gibts nicht.
    Also es werden natürlich Events gefeuert wenn irgendwas passiert. Ist ja klar.
    Aber die kann man aus der Map heraus nicht abfangen.
    Was du aber mal probieren könntest: (ich gebe keine Garantie dass es funktioniert)
    Du könntest in allen playerstarts ein OnKill Output stecken welches dann triggert, was auch immer getriggert werden soll.
    Dann vlt das getriggerte Entity als letztes disablen damit es nicht nochmal getriggert werden kann.
    Öh...
    War das verständlich?
    Logic is an amazing thing ...
    for people that have it.

  13. #13
    Neues Mitglied
    Registriert seit
    13.08.2010
    Beiträge
    18
    Renommee-Modifikator
    0
    Zitat Zitat von damagefilter Beitrag anzeigen
    Wie gesagt.
    Ich denke es gibt nativ keine solche Methode einfach aus dem Grund dass man, wenn man Servervars ändern will einfach
    ein servercommand Entity nutzen kann.
    Das zieht ja keinerlei Performance oder ähnliches und es stellt definitiv sicher dass auf deiner Map alles so ist wie es sein sollte.
    (Beim nächsten Mapchange setzen sich die Vars ja wieder zurück)
    Zu den Listenern ... ich glaube auch das gibts nicht.
    Also es werden natürlich Events gefeuert wenn irgendwas passiert. Ist ja klar.
    Aber die kann man aus der Map heraus nicht abfangen.
    Was du aber mal probieren könntest: (ich gebe keine Garantie dass es funktioniert)
    Du könntest in allen playerstarts ein OnKill Output stecken welches dann triggert, was auch immer getriggert werden soll.
    Dann vlt das getriggerte Entity als letztes disablen damit es nicht nochmal getriggert werden kann.
    Öh...
    War das verständlich?
    War es, aber funktioniert afaik nicht

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
[email protected]