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
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/aspdecoffeehouse.asp