chat
Hast du bereits funktionen integriert wie kicken, bannen, raum eröffnen oder irgendetwas in dieser Art? Sprich irgendeinen Befehl der nur vom Server verarbeitet wird, nicht aber den anderen usern angezeigt wird?
Wenn ja, ists denkbar einfach:
Der user der seine Farbe geändert hat schickt den Farbwert an den server, dieser versendet ihn weiter an alle andere Clients, welche wiederum ihrerseits intern dem user in der Liste diesen Farbwert hinzufügen in einem speziellen Flag.
Dazu solltest du vllt. für jeden user eine Structure haben, bzw. ne allgemeine user structure wo eben solche dinge vermerkt sein können.
Schreibt dann der user mit dem gänderten Farbwert etwas, wird vom client nur noch überprüft ob er eine andere Farbe verwendet, wenn ja, wird diese einfach angewendet.
Warum ich gefragt habe ob du auch andere Befehle verarbeitest (also kicken etc)?
Weil ich dann davon ausgehe dass du zumindest so eine Art Protokoll verwendest, was dafür am praktikabelsten ist.
Ich hoffe ich konnte weiterhelfen
Mfg
RaVeN
Wenn ja, ists denkbar einfach:
Der user der seine Farbe geändert hat schickt den Farbwert an den server, dieser versendet ihn weiter an alle andere Clients, welche wiederum ihrerseits intern dem user in der Liste diesen Farbwert hinzufügen in einem speziellen Flag.
Dazu solltest du vllt. für jeden user eine Structure haben, bzw. ne allgemeine user structure wo eben solche dinge vermerkt sein können.
Schreibt dann der user mit dem gänderten Farbwert etwas, wird vom client nur noch überprüft ob er eine andere Farbe verwendet, wenn ja, wird diese einfach angewendet.
Warum ich gefragt habe ob du auch andere Befehle verarbeitest (also kicken etc)?
Weil ich dann davon ausgehe dass du zumindest so eine Art Protokoll verwendest, was dafür am praktikabelsten ist.

Ich hoffe ich konnte weiterhelfen

Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Hmmm... ich glaube bei RTF kannste einzelne Textabschnitte einfärben... Wird glaube ich auch beim dingelings chat benutzt, also zur einbindung notfalls dort mal hilfe holen 
Was UDP betrifft - auch kein Problem ohne server, so verschickt der Client die Farbwerte halt direkt an alle anderen Clients. Verschickt wird das ganze wie ein normaler string, nur meinetwegen mit nem "vorzeichen".
Irgendein sonderzeichen oder sonstwas welches dem Client signalisiert: "Halt, das ist kein Text, das iss ne andere info"
Meinetwegen sendet der dann sowas wie "|%|0,255,0".
Die anderen Clients parsen grundsätzlich jeden string den sie geschickt bekommen, erkennen sie dann "|%|" am Anfang eines selbigen, wissen sie dass - in diesem falle - ein Farbwert geschickt wird. Mit Hilfe des passenden RTF befehls wird dann bei dem User von dem der Wert kam der Text entsprechend eingefärbt.
Ich hoffe das ist soweit verständlich?
Die Farbwerte bekommste ja direkt vom ColorRequester. Speicher sie in ne Variable, verschicke diese wie eben beschrieben an die anderen user, diese setzen das entsprechende Flag, und mithilfe von RTF werden die nachrichten dieses users in zukunft immer gefärbt.
So vom Prinzip her
Jetz n bissel klarer?
Mfg
RaVeN

Was UDP betrifft - auch kein Problem ohne server, so verschickt der Client die Farbwerte halt direkt an alle anderen Clients. Verschickt wird das ganze wie ein normaler string, nur meinetwegen mit nem "vorzeichen".
Irgendein sonderzeichen oder sonstwas welches dem Client signalisiert: "Halt, das ist kein Text, das iss ne andere info"
Meinetwegen sendet der dann sowas wie "|%|0,255,0".
Die anderen Clients parsen grundsätzlich jeden string den sie geschickt bekommen, erkennen sie dann "|%|" am Anfang eines selbigen, wissen sie dass - in diesem falle - ein Farbwert geschickt wird. Mit Hilfe des passenden RTF befehls wird dann bei dem User von dem der Wert kam der Text entsprechend eingefärbt.
Ich hoffe das ist soweit verständlich?
Die Farbwerte bekommste ja direkt vom ColorRequester. Speicher sie in ne Variable, verschicke diese wie eben beschrieben an die anderen user, diese setzen das entsprechende Flag, und mithilfe von RTF werden die nachrichten dieses users in zukunft immer gefärbt.
So vom Prinzip her

Jetz n bissel klarer?

Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
rtf befehl iss n bissel flapsig ausgedrükt 
RTF steht für Richt Text Format. Hier gibt es auch irgendwo ne Lib für PB damit du das als Gadget verwenden kannst anstelle von Editor oder Stringgadget. Vorteil: Mehr funktionen, wie zum beispiel eben einzelne Textteile einfärben.
Insofern: keine dumme Frage, nur dumm erklärt, denn es gibt keine dummen Fragen
Mfg
RaVeN

RTF steht für Richt Text Format. Hier gibt es auch irgendwo ne Lib für PB damit du das als Gadget verwenden kannst anstelle von Editor oder Stringgadget. Vorteil: Mehr funktionen, wie zum beispiel eben einzelne Textteile einfärben.
Insofern: keine dumme Frage, nur dumm erklärt, denn es gibt keine dummen Fragen

Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Viel Glück dabei 
Sollte nur n Denkanstoß sein und ist auch nur ne idee wie ich es umsetzen würde. Sollte es Probleme geben einfach nochmal nachfragen bzw ggf. Sirhc.ITI kontaktieren, der färbt ja auch textteile ein und verwendet dafür auch rtf.
Auch in sachen "Protokoll" selber schreiben kann er dir sicher tipps geben.
Have fun!
RaVeN

Sollte nur n Denkanstoß sein und ist auch nur ne idee wie ich es umsetzen würde. Sollte es Probleme geben einfach nochmal nachfragen bzw ggf. Sirhc.ITI kontaktieren, der färbt ja auch textteile ein und verwendet dafür auch rtf.
Auch in sachen "Protokoll" selber schreiben kann er dir sicher tipps geben.
Have fun!
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
ok ich hab doch noch ne frage
RichEditTextColor(farbe)
ich hab jetzt den befehl, aber wo bau ich den ein ?
ich zeig mal den code


RichEditTextColor(farbe)
ich hab jetzt den befehl, aber wo bau ich den ein ?
ich zeig mal den code
Code: Alles auswählen
OpenWindow(0,0,0,500,390, "XIXIX Chat V 1.1 "+"©"+" 2007 by Maikel Rehl",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
AddKeyboardShortcut(0, #PB_Shortcut_Return, 3)
InitNetwork()
CreateGadgetList(WindowID(0))
EditorGadget(1,5,5,390,300, #PB_Editor_ReadOnly)
StringGadget(2,5,310,390,60,"")
ButtonGadget(3,400,310,95,25,"Senden")
ButtonGadget(6,400,340,95,25,"Farbe")
TextGadget(5,5,370,490,15,"Hallo ")
port=6054
Name.s = InputRequester("XIXIX Chat","Bitte geben sie Ihren Namen an:","")
farbe = ColorRequester()
SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
e = 0
f = 0
If CreateNetworkServer(#PB_Any, port, #PB_Network_UDP)
SetGadgetText(5,"Server erfolgreich erstellt")
SendUDPBroadcast(port,Name + ": ist der Sitzung beigetreten !!!")
EndIf
Repeat
Text.s = GetGadgetText(2)
EventID = WaitWindowEvent()
sevent = NetworkServerEvent()
clientid = EventClient()
If sevent = 2
Text = Space(5000)
ReceiveNetworkData(clientid, @Text, 5000)
ReceiveNetworkData(clientid, @Name, 5000)
AddGadgetItem(1,e-1,Text)
EndIf
If EventID = #PB_Event_Menu
Select EventMenu()
Case 3
If SendUDPBroadcast(port,Name + ": " + Text) = 0
SetGadgetText(2,"")
SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
Else
SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
EndIf
EndSelect
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 3
Text.s = Name + ": " + GetGadgetText(2)
If SendUDPBroadcast(port,Name + ": " +Text) = 0
SetGadgetText(2,"")
SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
Else
SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
EndIf
Case 6
farbe = ColorRequester()
SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
SendUDPBroadcast(port,Name + ": hat die Sitzung verlassen !!!")
Uff... gute Frage wenn ich ehrlich bin - habe schon ewig nimmer damit gearbeitet
Würde aber spontan vermuten dass es anstelle des SetGadgetColor hinkommt. Allerdings bin ich mir echt nicht sicher ob du dafür das Editor Gadget verwenden kannst - ich glaube fast nicht...
Also wären die Arbeiten zum umschreiben etwas umfangreicher...
Hmmm, habe noch nicht mit UDP gearbeitet... wenn du da etwas braodcastest, geht das automatisch an alle Clients? *interessehalber*

Code: Alles auswählen
Case 6
farbe = ColorRequester()
SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
Also wären die Arbeiten zum umschreiben etwas umfangreicher...
Hmmm, habe noch nicht mit UDP gearbeitet... wenn du da etwas braodcastest, geht das automatisch an alle Clients? *interessehalber*
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94