AddText an alle?

10/20/2015 05:06 /-/µR€#1
Hallo kann mir jemand sage wie ich es schaffe folgendes an alle user zu senden?
Code:
	pUser->AddText( "User " + strName + " has activated:" +   szString );

es klappt soweit wie ich es möchte aber ich würde es gerne so machen das alle user es zu sehen bekommen.
Es über g_DPCoreClient.SendSystem zu machen wäre mir da etwas zu krass weil ich nicht möchte das die info mitten auf den bildschirm gepappt wird. any ideas?

edit: alternativ könnte ich ja trotzdem g_DPCoreClient.SendSystem benutzen aber dazu muss ich erstmal wissen wie man die position und/oder die textgröße verändern kann damit es ingame nicht so riesig ist als wenn ein gm shouten würde.
10/20/2015 12:14 Mognakor#2
Guck dir die SendSystem und die AddText an und bau dir eine neue Funktion und die nennst du AddTextAll.
10/20/2015 14:58 Мentus#3
Du kannst über den Core Server alle Klienten die momentan mit dem Server verbunden sind kontaktieren.

Das heißt du schickst, von dem jeweiligen World Server des Channels, ein Paket ab an den Core Server. Dieser schickt dann an alle Klienten ein Paket.

Beachte hier: Du musst das letzte Parameter von dem Makro SEND mit DPID_ALLPLAYERS füllen. (Im Core Server)

Fassen wir noch einmal zusammen:

World Server -> Core Server + DPID_ALLPLAYERS -> alle Klienten.

Der Party Chat und er Gilden Chat sind auch channel-übergreifend.

Falls es nicht channel-übergreifend sein muss, kannst du im jeweiligen Channel bzw World Server auch den assoziativen Container m_users der Klasse CUserMng nutzen.

Für die Schriftgröße müsstest du dir einmal die Methode (ja, ich sage Methode :S) CCaption::AddCaption anschauen. Du könntest natürlich auch einfach eine Nachricht wie bei dem AddText ausgeben lassen. Das müsste dann die Methode CWndMgr::PutString für dich erledigen.
10/20/2015 19:20 /-/µR€#4
Quote:
Originally Posted by Мentus View Post
Du kannst über den Core Server alle Klienten die momentan mit dem Server verbunden sind kontaktieren.

Das heißt du schickst, von dem jeweiligen World Server des Channels, ein Paket ab an den Core Server. Dieser schickt dann an alle Klienten ein Paket.

Beachte hier: Du musst das letzte Parameter von dem Makro SEND mit DPID_ALLPLAYERS füllen. (Im Core Server)

Fassen wir noch einmal zusammen:

World Server -> Core Server + DPID_ALLPLAYERS -> alle Klienten.

Der Party Chat und er Gilden Chat sind auch channel-übergreifend.

Falls es nicht channel-übergreifend sein muss, kannst du im jeweiligen Channel bzw World Server auch den assoziativen Container m_users der Klasse CUserMng nutzen.

Für die Schriftgröße müsstest du dir einmal die Methode (ja, ich sage Methode :S) CCaption::AddCaption anschauen. Du könntest natürlich auch einfach eine Nachricht wie bei dem AddText ausgeben lassen. Das müsste dann die Methode CWndMgr::PutString für dich erledigen.
Dankeschön das hat mir sehr weiter geholfen :)