Forum

> > CS2D > Server > 2*mal alles was gesagt wird
Forums overviewCS2D overview Server overviewLog in to reply

German 2*mal alles was gesagt wird

17 replies
To the start Previous 1 Next To the start

old 2*mal alles was gesagt wird

Cebra
User Off Offline

Quote
Hallo,
auf meinem Server wird alles was gesagt wird 2 mal angezeigt,
allerdings nicht in der dedicated-Konsole(da nur einmal).
Wie kann man das beheben??

old Re: 2*mal alles was gesagt wird

Jaller94
User Off Offline

Quote
Das Verhalten ist typisch für ein Lua-Skript.
Versuch die Skripts einzeln zu deaktivieren, um jenes zu finden, welches das Problem verursacht.

Bist du dir sicher, dass dies nicht der Ursprung ist, bitte ich dich mehr Informationen zum Problem zu schreiben. Auch ein Screenshot könnte helfen.

old Re: 2*mal alles was gesagt wird

Jaller94
User Off Offline

Quote
Nett fragen, ob sich das irgendeiner anschaut und geduldig warten.

Ansonsten hilft es dir als Hoster sicherlich auch selbst die Lua-Befehle von cs2d zu lernen.

Was du suchst wird in etwa so aussehen:

1
2
3
4
addhook("say","FunktionsName")
function FunktionsName(id, message)
   msg(player(id,"name")..": "..message)
end
Das gibt jede geschriebene Nachricht nochmal aus.

old Re: 2*mal alles was gesagt wird

Alpha Beta
User Off Offline

Quote
user Jaller94 has written
Nett fragen, ob sich das irgendeiner anschaut und geduldig warten.

Ansonsten hilft es dir als Hoster sicherlich auch selbst die Lua-Befehle von cs2d zu lernen.

Was du suchst wird in etwa so aussehen:

1
2
3
4
addhook("say","FunktionsName")
function FunktionsName(id, message)
   msg(player(id,"name")..": "..message)
end
Das gibt jede geschriebene Nachricht nochmal aus.


Ich hab mir das Gajos Hausscript angeguckt und auch ausprobiert, aber so etwas findet man dort nicht. Es müsste an etwas anderem liegen.

old Re: 2*mal alles was gesagt wird

Cebra
User Off Offline

Quote
erstmal danke
hat aber auf gehört nach dem ich den raus genommen hab
Edit: hat auch wieder angefangen als ich den wieder rein getan habe

das der part wo die funktion 'say' dirn vor kommt
Spoiler >

old Re: 2*mal alles was gesagt wird

Cebra
User Off Offline

Quote
hab ich mal gemacht in gajos haus script ist das nicht, in den anderen auch nicht
und bei starkkz admintool könnte vllt was sein

könnte es evtl ein konflikt zwischen 2 scripts sein??
edited 1×, last 04.04.15 05:04:50 pm

old Re: 2*mal alles was gesagt wird

Bowlinghead
User Off Offline

Quote
Ich glaube, dass es nur Konflikte gibt, wenn zwei Mal der gleiche Funktionsname auftaucht.
Es kann natürlich auch sein, dass CS2D mit zu vielen Hooks nicht klar kommt, das ist allerdings nur eine Vermutung.

Alternativ kannst du dieses Script dazu benutzen, um den Bug alternativ zu fixen*:
1
2
3
4
addhook("say","watch_say")
function watch_say()
	return 1
end

*Es kann sein, dass diese Funktion den Text komplett löscht, wodurch die anderen say Funktionen nicht getriggert werden.

old Re: 2*mal alles was gesagt wird

Bowlinghead
User Off Offline

Quote
Beim Serverstart werden alle Hooks in der Konsole angezeigt (blau) und auch Lua Fehler (rot). Siehst du Hooknamen doppelt oder irgendwelche Fehler?

old Re: 2*mal alles was gesagt wird

Cebra
User Off Offline

Quote
nop alle lua Sachen sind blau
aber wenn ich den admin script rausnehme ist alles nur 1 mal und wenn ich einen anderen admin script einfüge ist wieder alles doppelt

old Priority of hooks

Jaller94
User Off Offline

Quote
Eine weitere Vermutung:
Es liegt an der Kombination von Lua-Skripts.

Der Befehl cs2d lua cmd addhook hat noch einen dritten, optionalen Parameter: Die Priorität.

Zu einem Hook kann sich (auch innerhalb eines Skripts) mehrfach eingehangen werden.

1
2
addhook("say","func1",10)
addhook("say","func2",5)

Wegen der höheren Priorität wird func1 ZULETZT ausgeführt. Dies ist vor allem zum Blockieren von Aktionen in CS2D notwendig. Beim Hook "say" wird durch "return 1" die interne Chat-Ausgabe zurückgehalten. Es zählt allerdings nur die Rückgabe der der ZULETZT ausgeführten Funktion.

1
2
3
4
5
6
7
function func1(id, txt)
  -- Nachricht mit lua ausgeben
  msg( player(id,"name") .. ": " .. txt )

  -- internen Chat unterbinden
  return 1
end

Eine solche Funktion, die die Ausgabe selbst übernimmt und die interne Ausgabe stoppt muss die höchste Priorität haben. Ansonsten erscheint der Eintrag zweimal im Chat.

UPDATE: Schreib doch bitte mal ne Liste mit allen deinen Skripts mit Link im Datei-Archiv.

UPDATE^2: Parallele Admin Skripts verstehen sich quasi nie gut. Vermutlich gibt es weitere Fehler, die nicht so auffällig sind. Besser du entscheidest dich für eins.

old Gefunden

Jaller94
User Off Offline

Quote
Ok, gefunden.

"Starkkz's Admin Script" hat keine Priorität und will die Ausgabe blocken. "Gajos House Script" hat eine Priorität von 2, braucht sie aber vermutlich gar nicht.

Ändere Zeile 8 in /sys/lua/admin/addons/player_cmds.lua vom Admin-Skript.

1
2
3
4
5
-- unverändert
addhook("say","AM.Say")

-- neue Version mit hoher Priorität
addhook("say","AM.Say",100)
To the start Previous 1 Next To the start
Log in to reply Server overviewCS2D overviewForums overview