> -----Original Message----- > From: Claudius Ceteras [mailto:[EMAIL PROTECTED]] > Sent: Montag, 20. Mai 2002 23:01 > To: AspGerman Kaffeehaus > Subject: [aspdecoffeehouse] RE: [aspdecoffeehouse] Hilfe bei > /join- und /kick-Problem f�r Chat > > > Code ist nicht unbedingt leicht zu lesen.... > Ich w�rde Dir raten eine zus�tzliche Abstraktionsschicht einzuf�gen, > also Funktionen wie: > > addRoom(roomname) > Join(roomname,username) > setStatus(username, status) > etc. > > Das macht den Kopf freier f�r das eigentliche Problem... > > Welche Logiken sind Dir noch unklar? > > - Raum l�schen, wenn es der letzte user war bedeutet: Immer > wenn jemand > den Raum verl�sst, checken, ob er der letzte war... Falls ja: raum mit > l�schen > > - Kicken: Falls der Kicker opstatus hat, dann: gekickten usre > aus dem ra Sorry, hab aus versehen abgeschickt... Also: - Kicken: Falls der Kicker opstatus hat, dann: gekickten user aus dem raum entfernen und gekicktstatus auf true setzen, damit man ihm anzeigen kann, dass er gekickt wurde... Diesen gekicktstatus kannst Du unterschiedlich implementieren... Falls Dein System Nachrichten an einzelne User unterst�tzt, auch wenn sie sich in einem anderen (oder gar keinem) Raum befinden, dann kannst Du einfach "Bot" dem user sagen lassen "Du wurdest gekickt"... Claudius > > Claudius > > > > > Hi Leute, > > > > ich bin gerade dabei, einen Chat zu proggen und h�nge bei > > zwei Punkten. > > > > Einmal soll bei Eingabe von /kick Name der entsprechende User > > aus dem Chat > > gekickt werden und dann statt weiterer Texte nur eine > > Mitteilung sehen, das > > er gekickt wurde und von wem. (Der Chat benutzt Sessions.) > > Wie mache ich > > das? > > > > Zweitens: Es soll per /join Raumname zwischen den R�umen > > gewechselt werden. > > Existiert der Raum nicht, soll er erstellt werden und der Er�ffner > > automatisch der tempr�re RoomOP f�r diesen Raum werden. > > Verl��t er den Raum, > > sollen auch seine temp. RoomOP Rechte fl�ten gehen. Ist gar > > kein User mehr > > im Raum, soll der Raum automatisch gel�scht werden > > > > Das hier ist mein Ansatz f�r den Befehl: > > if left(message,5) = "/join" or ".join" then > > room = Right(message,len(message)-6) > > set rsmsg = conn.execute("select room from tbl_room where > > room = '" & room > > & "'") > > if rsmsg.eof then > > set rsmsg = conn.execute("insert into tbl_room (room, op) > > values ('" & > > room & "', '" & Session("name") & ",'") > > set rsmsg = conn.execute("update tbl_user (state, room) > > values (1, '" & > > room & "') where user = '" & Session("name") & "'") > > message = Session("name") & " hat den Raum verlassen." > > set rsmsg = conn.execute("insert into tbl_message (from, > > to, message, > > room) values ('Bot', 'All', '" & message & "', '" & > > Session("room") & "')") > > message = Session("name") & " hat den Raum betreten." > > set rsmsg = conn.execute("insert into tbl_message (from, > > to, message, > > room) values ('Bot', 'All', '" & message & "', '" & room & "')") > > Session("room") = room > > else > > set rsmsg = conn.execute("select room from tbl_room where > > state = 0") > > do while not rsmsg.eof > > set rsmsg1 = conn.execute("select count(name) as count, op > > from tbl_user > > where room = '" & rsmsg.fields("room") & "'") > > if count = 0 then > > Dim arop, r > > arop = split(rsmsg1.fields("op").value,", ") > > for r = 0 to ubound(arop) > > set rsmsg2 = conn.execute("update tbl_user (state) > > values (0) where > > user = '" & arop(r) & "'") > > next > > end if > > rsmsg.movenext > > wend > > end if > > end if > > > > Nur irgendwie h�nge ich da jetzt. Kann mir jemand > > weiterhelfen? Ein User > > kann 4 States annehmen: 0 = normaler User, 1 = tempor�rer > > RoomOP (entweder > > durch den Befehl /op Name dazu geworden oder weil er einen > neuen Raum > > erstellt hat), 2 = st�ndiger RoomOP, 3 = GrandOP, 4 = ChatOP). > > > > Gru�, > > > > Arkor, http://www.drhirn.com/20 > > > > > > | [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed > > | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv > > | Sie k�nnen sich unter folgender URL an- und abmelden: > > | > > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffee > house.asp > > > | [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffee house.asp | [aspdecoffeehouse] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp
