Sie sind nicht angemeldet.

1

Montag, 31. Januar 2011, 21:57

cfg file verzögert ausführen?

Hallo, ich suche eine möglichkeit eine cfg verzögert auszuführen.

Da wir eine selbst erstellte autorecord funktion für den source tv haben, aber der sorce TV ja ca 2-5 sec braucht bis er vollständig geladen ist, kann ich dann erst meine record.cfg ausfühen.

Wir sind für jeden Tip Dankbar.

Mfg Neo

Koffein

Fortgeschrittener

Beiträge: 353

Rootserver vorhanden: Nein

  • Nachricht senden

2

Montag, 31. Januar 2011, 22:30

Re: cfg file verzögert ausführen?

Versteh ich das richtig, du willst das dein SourceTv automatisch aufnimmt?
Zur Zeit funktioniert es nicht, weil deine Funktion zu früh ausgeführt wird?

Einfach tv_autorecord "1" setzen und fertig.

MadMakz

Super Moderator

Beiträge: 1 878

Wohnort: ~#

Rootserver vorhanden: Ja

  • Nachricht senden

3

Montag, 31. Januar 2011, 22:34

Re: cfg file verzögert ausführen?

2-5 sek.? verstehe ich jetzt nicht so ganz.

also von tv_enable 0 zu 1 (und andersrum) braucht es ja ohnehin einen mapwechsel dann ist STV auch sofort da

und aufnehmen ist dann auch sofort möglich auch wenn tv_autorecord 0 ist.

mir fehlen jetzt die "2-5 sekunden" die ich auf "was"(?!) warten muss. :S

4

Mittwoch, 2. Februar 2011, 23:41

Re: cfg file verzögert ausführen?

tv_autorecord "1" fällt bei uns ganz raus, da dann alle demos im cstrike ordner gespeichert werden.


Also Ich hab in meiner server.cfg ganz normal tv_enable 1 und den ganz rest ,

danach führe ich eine record cfg aus, in der steht: tv_record "Demos/20110129-0020-dust2_awp"

so das alle demos auch im "Demos" gespeichert werden. Das Datum und Uhrzeit wird via cron job automatisch alle 5 min geändert, so das keine dateien doppelt entstehen können. Dann hab ich ein 2. cron job der im ordner "Demos" jeden tag dateien älter als xx tage löscht. damit entsteht auch kein daten müll.

Mein problem ist nun das wenn die server.cfg durch ist und die record.cfg geladen wird der hltv noch nicht komplett hochgefahren ist und den befehl der record.cfg ausführt.

Vorher hab ich das ganze mit mani admin gemacht, und mit hilfe der mani_server.cfg, da war ja die reihenvolge
server.cfg - autoexec - mani_server.cfg -record.cfg das hat ausgereicht das der hltv in der server.cfg komplett online war bis die record.cfg gestartet wurde.

Ich hoffe mich versteht man jetzt etwas.

Mfg Neo

DeaD_EyE

Administrator

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

5

Donnerstag, 3. Februar 2011, 02:27

Re: cfg file verzögert ausführen?

So?

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
ip_port="93.186.xxx.xxx:27015"
cfgdir="~/war/orangebox/cstrike/cfg"
cfgname="record.cfg"
demodir="Demo/"
disable_sv_allow_wait_command=#falls sv_allow_wait_command auf 0 gesetzt ist
quakestat_cmd="quakestat" #befehl für Quakestat
map=$($quakestat_cmd -a2s $ip_port -nh -timeout 5 awk '{print $3}'#mapname auslesen
[[ -"$map]] && exit #falls server down ist, hier abbrechen
if [ $disable_sv_allow_wait_command -eq 1 ]; then
    wait[0]="sv_allow_wait_command 1"
    wait[1]="sv_allow_wait_command 0"
fi
demoname="$(date +$demodir%Y%m%d-%H%M-$map)" #String für Demonamen generieren

#cfg schreiben mit here-doc
cat $cfgdir/$cfgname <<EOF
${wait[0]}
alias "wait10" "wait;wait;wait;wait;wait;wait;wait;wait;wait;wait"
alias "wait100" "wait10;wait10;wait10;wait10;wait10;wait10;wait10;wait10;wait10;wait10"
alias "wait1000" "wait100;wait100;wait100;wait100;wait100;wait100;wait100;wait100;wait100;wait100;"

wait1000wait1000
${wait[1]}
tv_record "$demoname"
EOF

MadMakz

Super Moderator

Beiträge: 1 878

Wohnort: ~#

Rootserver vorhanden: Ja

  • Nachricht senden

6

Donnerstag, 3. Februar 2011, 17:42

Re: cfg file verzögert ausführen?

an wait und sv_allow_wait_command hab ich auch schon gedacht. bin mir aber nicht sicher wie sich das mit AC tools vertragen würde die einen hook auf sv_allow_wait_command gesetzt haben und 0 forcen.

DeaD_EyE

Administrator

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

7

Donnerstag, 3. Februar 2011, 19:57

Re: cfg file verzögert ausführen?

Hast recht. zBlock forciert sv_allow_wait_command auf 0. Wenn man das vorher mit zb_active 0 umgeht, kann man die cvar setzen.

Quellcode

1
2
3
zb_active 0; sv_allow_wait_command 1
wait1000
sv_allow_wait_command 0; zb_active 1


Das führt unweigerlich zu einer Endlosschleife, da die Map gewechselt wird und dann die record.cfg erneut ausgeführt wird.
Es muss einen anderen Weg geben.

Das kann man ganz einfach testen.

Quellcode

1
2
hostname "Test"
sv_active 0; sv_active 1


Danach hat der Server wieder den alten Hostnamen, den man fast ausschließlich in der server.cfg festlegt. D.h. die server.cfg wird durch einen Mapchange ausgeführt.

8

Donnerstag, 3. Februar 2011, 21:32

Re: cfg file verzögert ausführen?

Ich dachte eigendlich das wait befehle generell geblock werden, da das ganze aufeinen pub server soll kann ich ja einfach sv_allow_wait_command 1 mit in die server.cfg schreiben und oben in meine record.cfg die wait zeile. da ich mit wait aber noch nie gearbeitet habe wüsst ich jetzt auch nicht wie, bzw müsst ich den cron job noch anpassen.

der erste code oben sieht auch recht gut aus auch wenn ich nur 90% was da steht verstehe, kann ich rauslesen das du dort auch den demo namen variable hast, und ich mir ein chron job sparen könnte. Aber irgendwie denken wir zu komplieziert,denn wen ich wait befehle benutzen kann, kann ich doch einfach mit der autoexec ne wait.cfg starten, die dann erst die wait befehle hat und zum schluss exec record.cfg .

Somit überbrück ich meine kurze zeit spanne und kann den rest alles beibehalten wie es ist, da es ja so bisher sher gut lief.

Ich teste mal.

Mfg Neo

Edit: hmm, die autoexec läd alles zu früh,

ausschnitt screen log:

maxplayers set to 7 (extra slot was added for SourceTV)
hltv cfg loaded
SourceTV not active.
record.cfg loaded

"sv_password" = ""
notify
- Server password for entry into multiplayer games
Network: IP 84.XXX.XXX.XXX, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
L 02/03/2011 - 21:57:16: -------- Mapchange to de_dust2 --------
ConVarRef room_type doesn't point to an existing ConVar
Executing dedicated server config file
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient.dll. Continuing with current version anyway.
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Failed to load Steam ServiceServiceStart: failed to startexec banned_user.cfg: file size larger than 1 MB!
exec banned_ip.cfg: file size larger than 1 MB!
--------------------------------------------------------
sv_pure value unchanged (current value is 0).
--------------------------------------------------------
Writing cfg/banned_user.cfg.
Writing cfg/banned_ip.cfg.
Game will not start until both teams have players.
SourceTV broadcast active.
hostname: Testserver by Holyshit
version : 1.0.0.58/15 4426 insecure (secure mode enabled, disconnected from Steam3)
udp/ip : 84.XXX.XX.XXX:27015
map : de_dust2 at: 0 x, 0 y, 0 z
sourcetv: port 27350, delay 0.0s
players : 5 (7 max)

# userid name uniqueid connected ping loss state adr
# 2 "www.Clan-Holyshit.de" BOT active
# 3 "Holy Shit| Troy" BOT active
# 4 "Holy Shit| Wayne" BOT active
# 5 "Holy Shit| Dean" BOT active
# 6 "Holy Shit| Adrian" BOT active
rcon from "87.158.174.189:51209": command "status"
Connection to Steam servers successful.
VAC secure mode is activated.



Irgendwie muss ich es hinbekommen das die record.cfg erst geladen wird wenn der server voll online ist, das mit dem wait geht gar nicht.

kann man es machen das eine cfg geladen wird wenn der erste user joint?

9

Freitag, 4. Februar 2011, 23:43

Re: cfg file verzögert ausführen?

Nun gut, ich hab es hinbekommen.
Nachdem ich nun div sourcemod tuturials gelesen habe, und den aufbau div plugins studiert habe, hab ich mich an einen eigenen plugin versucht.
Und siehe da es geht. ob es nun die perfeckte lösung ist weiß ich noch nicht, dennoch werd ich mich mit dem thema weiter ausein ander setzen.

evtl kann ja mal einer nen blick werfen und mir evtl fehler oder verbesserungs vorschläge machen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <sourcemod>

#define PLUGIN_VERSION "1.0"


public Plugin:myinfo =
{
	name = "HLTV record",
	
	author = "Neo@Bln",
	description = "Startet die HLTV demo",
	
	version = PLUGIN_VERSION,
	url = "http://www.clan-holyshit.de"
};

public OnPluginStart()
{
	CreateConVar("sm_hltv_demo_start", PLUGIN_VERSION, "hltv_demo_start", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);	
}

public OnMapStart()
{
	AutoExecConfig(true, "neo_record");
}


ansich sehr primitiv aber erfüllt seinen zweck.

Edit: irgendwie müsst ich es noch hin bekommen das ich die cfg file auch im cfg ordner starten kann und nicht erst im cfg/sourcmod ordner.
Oder sogar wie Dead_EyE schon oben angefangen hat die demo namesänderung mit rein bringen, so das ich mir ein cron job spare. Aber ist es moglich eine cfg file zu überschreiben mittels plugin?
derzeit mach ich dies ja mit einer .sh datei die ich wie gesagt mit nem cron job alle 5 min ausführe.

DeaD_EyE

Administrator

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

10

Samstag, 5. Februar 2011, 00:05

Re: cfg file verzögert ausführen?

Gute Leistung. Hättest gleich sagen können, dass es nicht ein War-Server ist. Das hätte dir und mir Arbeit erspart.
Schau mal hier: http://forums.alliedmods.net/showthread.php?p=824438">http://forums.alliedmods.net/showthread.php?p=824438</a>

11

Samstag, 5. Februar 2011, 00:19

Re: cfg file verzögert ausführen?

Sry das ich das zu spät erwähn habe, aber danke für den link. werd ich mal testen ob das so arbeitet wie ich es wollte.

Naja ich hab halt zu lange nur mit mani admin gearbeitet, und bin gerade erst auf source mod umgestiegen, da mani bei uns irgendie gar nicht mehr wollte so wie wir es wollten.

Jetzt hab ich mich wenigsten mit der materie etwas auseinander gesetzt, kann nur helfen für die zukunft.