mIRC Homepage
I have been using IRC related programs for as long as I can remember. One of the only IRC programs that really attracted me is IRC. Since it is such a flexible program. The one thing that I think would make mIRC a much better program is if a little program was written to tell you when someone is typing you a msg. if you can add this on a future version I think mIRC will attract a lot of people that use MSN for that reason.
Dj_De4tH (Undernet Network)
Not possible... and this has been suggested before... If I remember right... Next time before posting, use the search feature...
it is posible actually, but both people would have to use the same script.

on *:TEXT:*:?:{
.set %privmsg $nick
on *:KEYPRESS:*:{
/.ctcp %privmsg typing
ctcp *:typing:*:{
//echo -a $nick is typing a message
Exept there ain't on keypress event, or any else that works with channels/msg windows.
And that would flood the server...
on *:KEYPRESS:*:{
/.ctcp %privmsg typing

It's a nice idea but after 18 characters you would be killed for flooding.
well provided you find a way to determine if a key is pressed (maybe $editbox on a timer?) you wouldnt have to send each keypress only the first. then when the recieving end gets the msg it echos it and waits for a msg from that person resetting a variable. The of course the next time they type the cycle repeats. I usually type quite fast however and can send multiple lines alot (not to mention pasting) so i still think youll get flooded off.

Since it already requires both parties to have the same script why not use sockets and make your own protocol for it?

its a nifty feature but i think its cost may be too great (unless you find a way using sox or something in wich case id use it lol)
If it was me I would just work it from ON INPUT:?: though I am unsure of how to get mIRC to cancel the variable I would set to block more than one CTCP once the return key is pressed. I haven't done much mIRC scripting (aside from making a small bot to hammer the Fizzer virus with) in the last year or so, so I reckon I have forgotten a few things.

Only thing is, I think ON INPUT:?: would only work with a message window open, but not with just typing /msg name blah on a channel or status window.
ya im sure tho that it can be done. I think the sox method is the way to go tho so your not flooded away. Its a shame im too lazy atm lol
I know the feeling lol.
Not completly bug free, but here...

could it be done through DCC in some way? Or it's own port? So when someone types it sends something to that person through the port and then mIRC just does whatever it needs to?
I don't see why not. I'm almost positive this could be done using mIRC's socket support. In order to write a script to do this, the on KEYDOWN event would need to be triggered in chat windows rather than only custom windows.

One thing about using a script, both users would need the script installed.

* An idea on how my script mechanism would function:

When starting a chat with another user, the script would set a socket to listen on your ip and on port 2112. When the on KEYDOWN event is triggered by you, the script would open a socket to the other user's ip and port 2112. Once the socket is connected, the script will have the socket send the string 'TYPE' to inform the other user's client that you're typing a message.

The other user's script will recieve the 'TYPE' string, and from here, alert the user that you're typing a message. This would repeat each time the on KEYDOWN event is triggered in a chat window.

The point I'm trying to make is, if this can be accomplished using sockets, then I would imagine Khaled could implement this very, very easily using a method like the one I suggested.
your method sounds horrible!
Is that all or do you have a better suggestion?
no I can't think of anything better. but the method Prizm suggested would cause some problems.
noone saw my file? I have a working example. Have 2 ppl downlaod that file, and run it. Then talk in the channel, and the other will see "<nick> is typing..." "nick has stopped typing"
while the idea is great and ive always liked this since aim/msn implemented it. I dont think its gonna happen for a few reasons

1) mIRC could implemented it usesing sockets yes, but problems can happen like 1 or more persons has a problem with that port either its in use/blocked and thus no connections made

2) Its a lot of work on a query open mIRC would haveta socklisten or for tha matter who socklistens? who sockopens? this could be avoided of course by having each mIRC have one /socklisten for all of this then whoever msgs the person could open the socket to that person but then you run into the problem how do u get ips mIRC would haveta dns the person etc etc etc and if this all works u still run into problem #1 on occasions

although id like to see something like this i just dont think tis gonna happen way to much work for built in sockets getting ips opening sockets port issues etc

the only way i see it happening if it was a standard in ircds like a raw typeing :nickname and as u typed mIRC automaticly sent this raw etc etc but i dont see that happening either
i saw yours and i thought that was the way you did it :tongue:
What about the issue of... not everyone uses mIRC?
then they dont get the feature, simple as...
No they get messages in their system logs of "connection attempt from" over and over again.
im afraid thats how it is when you have multiple clients. Some things can never be added for fear that others who use a different client cant use it. I dont see this feature having a large impact however.

Bama as for the sock portion its not that difficult if the person cannot be connected to then they simply dont get the typing msg. Another larger issue is this..

You in a channel of maybe 1500 people (unless you use several sockets only one at a time can send the typing method). If you do use multiple sockets how would you be able to cleanly display the some 84 people who are all typing a message? Im sure an echo wont do it.
Not to mention that Windows has a limit on the number of sockets that can be opened by a single program, and that limit is well below 1500.
didn't really read every post but my idea is that it should only be a query/dcc chat type of thing. this shouldn't be sent to channels or anything. you would also have to try and figure you a way to not flood the servers with this, maybe some kinda direct send to the client kinda thing.
The only way fit (without a server flood) is with sockets. The only problem is that unless u have a user's ip you can't do it. Thats not such a bad thing with servers like dalnet where it's in plain sight, or is a hostmask that can be resolved, but servers with the mask-????? prefix are near impossible.

I did make a ctcp method that implys a message on every mode change. It has minimal notices, and only sends when a mod is altered. So far i have it join a channel, and apon join /ctcp # TYPING CHECK all users. Those who have my script will reply TYPING OK and so I add them to my list. Now, i have a list %typing.notify1 (1 being connection id--already thinking multi-server support) Anyways, now on a mode change it does /ctcp %typing.notify1 TYPING TRUE|FALSE|IDLE and the user(s) on the other end are aware of my status.

I did happen to intergrate it into my status bar, and it works nicly. I have three ppl testing with me and it seems to be very nice. Noone that doesn't have the script is noticed (other than the initial check) and those with it are told what's going on.

Anywas, enough advertising. I think its completly capable to do without a flood, and is faily practical. If your interested in a release, let me know by pm. I'l send it your way so you can help debug/improve apon it.
The only way I can see this beging done is with DCC chat only though the DCC sock.
Yes, but do you really want to dcc with everyone in the channel just so u can "XXX is typing"? I sure as hell wouldn't.
What? DCC everyone in the channel? What are you talking about?
I am referring to having the typing statuis being as global as possible. This being that all users in the channel should have the opportunity to see the typing status. The way your implying is that only DCC windows will have it, where as im saying you don't need dcc. And even so, if you wanted a whole room to be aware of you status you'd have to connect with the whole room.
How would you expect it to be displayed?
Nick1 is typing
Nick2 is typing
I can't see that working.
I was implying that only dcc chat would be able have it because I dont see it working anywhere else though server messages.
Channel CTCP maybe 1 method but it would be a night mare on a channel with 200+ users CTCPing with every keystorke.
Actually as I explained I have three ppl trying my scripts, and my status bar reads "nick1, nick2, and nick3 are typing" >:D

In addition, I also said that on join i ctcp the first time to do a referance of who has the capability of accepting a typing status. From there, it adds the names of those who will accept my modes passed, and ctcp them, and only them, on mode changes.
© mIRC Discussion Forums