Jump to content

The Gate Keeper

Members
  • Posts

    1,465
  • Joined

  • Last visited

Everything posted by The Gate Keeper

  1. congrads haggis! all the best and may it be everlasting.
  2. well around here there are several using vista. I myself am using vista. I, however, am aware of the problems it can cause, and this is why i'm the only person in the household using vista. I have left all my other computers on windows xp system. I see where a lot of people are coming from. I personally haven't experienced too many issues. And the issues i have experienced, i've been able to resolve by simply using microsoft's help, or doing a google search for a similar problem, and basing my solution off theirs. Though i am not really testing vista, i'm just using it. Larger corporations, and heavier users would use a lot more of the features then i do. But yea, i have no real complaints about vista. But i don't think xp should be taken off the shelf any time soon.
  3. yep, that was how connections like NuClear and DogCollar got around that issue. Even though mIRC now supports UTF-8, it still is restricted to the 50 character condition (unicode). Hash table is the best as it would allow for quick access to the information. You would just need to record the details when they join the room, and for every event, just retreive the correct details when an action is performed, just prior to the sockwrite. I'm sure you know how to do it tewl, but if you need a hand, i would be happy to help as i do remember some of the things i did when i made DogCollar for GuarDDog, so i should be able to assist with any of the information handling and socket handling/writing. The offers there, but like i said, i think you are more than capable .
  4. /me and /describe are "action" events, and hence why it appears as purple. if you wanted it as normal text, change "describe $chan" to "msg $chan".
  5. with $addtok, it doesn't matter which way you put it. You just need to know that you are joining one piece of information with the other, using the delimiter provided. I chose to join it in descending order, where the most recent nickname is at the front. You DO NOT need to do it "variable, nickname" or "variable, additional information". What if you were doing a list that you wanted to do in reverse, without using a loop? $addtok will do it fine, you just reverse the information, which is what i did. I don't see how it's "stooped to mIRC level" . If you are referring to a "hop flood", that's very different. If that was requested, i would make it, but it wasn't . for starters, sockreads maybe quicker but they are also more susceptible to flood out. My flood protection will work across any network, provided the "access $chan" is allowed. If it isn't, it only requires changing that one line. Having a sockread protection means that you need to hardwire it to the connection, meaning that you need to know exactly where to put it. This can cause issues when you are having to upgrade connections, or transferring to another server. And as for a general purpose tool, this method is a lot better. It may be a tad slower, but it will serve it's purpose none the less, and if done correctly, can be as (if not more) effective than a sockread protection code.
  6. just so you know, i'm not x-fusion! (which for some reason some people around here seem to think me and him are the same, we aren't). as for the timer thing, yes, that is correct, but remember to change both timers, there is one in each of the aliases. The code that i posted was tested in MSN chat, so they would be suitable for MSN like rooms. And remember, you leave the command as normal, just add "ss" before the command, so there is no difference in the code, except for the added "ss". This is so all your commands will work as normal, and that the commands themselves are buffered, and that it doesn't become restricted.
  7. also, you should remove any other occurances of the command. So that there is only one !part command for admin levels. If you have multiple part commands, that will definently stuff things up.
  8. X-Fusion is indeed correct, however, mine was a modification off of Petertje's code. Here is the snipplet... ;Peter's code, modified abit alias ss { inc %pss | hadd -m slowsend %pss $1- var %l = 1 | while ($var(%ssend.*,%l)) { var %i = $($ifmatch,2) | if ($len(%i) < 900) { break } | inc %l } set -e %ssend. [ $+ [ $(%l,2) ] ] $addtok(%ssend. [ $+ [ $(%l,2) ] ],%pss,32) if (!$timer(slowsend)) .timerslowsend -m 1 300 gosend } alias gosend { var %c = $gettok($var(%ssend.*,1),2,46) , %item = $gettok(%ssend. [ $+ [ $(%c,2) ] ],1,32) | %ssend. [ $+ [ $(%c,2) ] ] = $deltok(%ssend. [ $+ [ $(%c,2) ] ],1,32) $hget(slowsend,%item) | hdel slowsend %item if (!%ssend. [ $+ [ $(%c,2) ] ]) unset %ssend. [ $+ [ $(%c,2) ] ] if ($var(%ssend.*,1)) .timerslowsend -m 1 300 gosend else unset %ssend.* %pss } Simply add it to the remotes file, then with any command you wish to "buffer", put "ss" in front of it, and it will buffer the information with a 300 millisecond gap between sends. This should be enough to stop any flooding from occurring. So applying my code to your code you get (making sure you add the above snipplet into remotes)... on admin:TEXT:readusergate:#:{ var %handle = handle $+ $ticks, %file = user.txt , %l = $lines(%file) , %i = 1 if (!%l) { msg # There is no Message to read %file . } else { while (%i <= %l) { ss msg # $read(%file,%i) | inc %i } } } And just to remain unbiased, applying travis' method (as it works for file reads only, i believe)... on admin:TEXT:readusergate:#:{ var %handle = handle $+ $ticks, %file = user.txt if (!$lines(%file)) { msg # There is no Message to read %file . } else play # %file 300 } With the play command, "300" indiciates the delay in milliseconds, so if you need to slow it down, then do so. But like i said, it only works with file reads and buffer sending them. My snipplet provided in the first option allows you to buffer ANYTHING. Though, writing to a file, and "playing" the file, it will do pretty much the same job, but you just need to know how to code it correctly. Have fun...?
  9. once you have joined a room, getting a user's gate is very easy. It simply requiring doing something like $ial($nick).addr or $address($nick,1). But i think what is being asked is when you join a room, and need to get the "gate" of everyone already in the room. Which is what has been addressed already by a few people. If the issue has been resolved, please report back saying so, and which method you preferred, for people who may encounter the same issue at a later stage. Thank you.
  10. try... On admin:TEXT:!part*:#: { part $chr(37) $+ $chr(35) $+ $2- window -c $chr(37) $+ $chr(35) $+ $2- }
  11. i think we all started that way. I did. But the better ones actually move on from there, and learn how to write them.
  12. well for one, the term is "trojan horse", not trojanhole. As for an editor, you could try Notepad++. It is real sweet program, but it doesn't have a direct link to mIRC language support, but i believe you can make them yourself. Get Notepad++ at http://notepad-plus.sourceforge.net/uk/site.htm. Have fun.
  13. based on what i've seen here and there, people have made tools to modify the mirc's editor, to allow for that. I'm not too sure if it has been released, i've seen screenshots from mircscripts on it. So you may be best to check there, see if there is anything that you may be able to use. Though i wouldn't be able to help you much more.
  14. on @!*:JOIN:#: { var %x = $numtok(%ppc. [ $+ [ $chan ] ],32) if (%x == 3) .raw kick $chan $nick :Flood Protection else set -eu3 %ppc. [ $+ [ $chan ] ] $addtok($nick,%ppc. [ $+ [ $chan ] ],32) if (%x == 2) { .raw access $chan add deny *!*@*$* 2 :Flood Protection .raw kick $chan $nick :Flood Protection .raw kick $chan $gettok(%ppc. [ $+ [ $chan ] ],1,32) :Flood Protection .raw kick $chan $gettok(%ppc. [ $+ [ $chan ] ],2,32) :Flood Protection } } It's been way too long since i've coded in mIRC, so here is something i did just off the top of my head. It should do the job, but if it doesn't, well i'm sure you could just pluck something out of someone else's script. That's how everything works now a days isn't it?
  15. LOL, that is crazy. whois each user is worse then using a who on the channel, but ok, what ever floats their boat.
  16. basically, when you join a room, you are only given the nicks that are in the room. The gates are only given when particular information is present, that is with events such as certain modes, kicks, joins, parts and messages (can't remember if messages are yes/no, been a while). If they do nothing, you wont recieve their gate. Therefore you have to who the channel when you join. It's only required once. After that, you can just use $address or $ial, checking the help file for more details.
  17. if you have picked up other skills like javascript and html, why not put them to use through mIRC by creating things through dlls and that. I've picked up a few nifty little tricks that i'd love to try out, but just the fact that i'm reasonably busy with uni means that i haven't really been bothered. That and i personally don't have an interest in chat anymore.
  18. the reason why people are more comfortable with modifying vincula is because very few have the actual knowledge of making their own connection. They would prefer to modify something that worked at the time, and try and get it to work for their services. But of course, you'll NEVER get the full potential out of vincula, because it was made for MSN, not for every other chat service under the sun. I guess people lack the skills required to really make a network worth while being a part of.
  19. yea, i remembered the other method as well. I pretty much just copied/pasted from my script, as i wasn't bothered to work it out. Thanks for the pointer.
  20. you shouldn't need to convert them at all. Like, the characters i gave you were "raw", meaning, they were in the form that you should send them to the server as. There is no need for any converting.
  21. what you could do is make a socket send routine clean (meaning not compensating for UTF-8), and just make a function to convert string back from UTF-8 back to ASCII. Then you could something like socketsend utfback(<stringone>) 
 utfback(<stringtwo>) Hopefully this works. Ohh, and all these attempts are based off MSN chat, so they may not even work, but that is how the MSN ocx responded to new lines and that. So hopefully it gets you somewhere. If this doesn't work, you could try using linefeed in place, but as i said, i believe when you use linefeed, the server is expecting a new command, not a continuation of the privmsg.
  22. like i said, the characters i gave you should not be encoded, otherwise it will send the wrong thing. I am not too sure if your encoder compensates for line feeds and that. I know that when i was doing vb.net (as in mucking around with it) and even with mIRC and chat servers, line feeds would always imply a new. Regardless of if the previous statement is complete or not. Do you have a debug window? It should normally say something like <second line> unknown command or something.
  23. well for one thing, you are forgetting that the sockets send blank lines as well, as terminals. So you need to compensate for that as well. on *:sockread:?#*:{ sockread -n &x if ($bvar(&x,0) > 0) { if ($gettok($bvar(&x,1-).text,1-3,32) = AUTH GateKeeperPassport S) { } etc... } } I believe that's the only problem. You could use a tockenizer so save you from doing $gettok for everything. So the above code becomes... on *:sockread:?#*:{ sockread -n &x if ($bvar(&x,0) > 0) { tokenize 32 $bvar(&x,1-).text if ($1-3 = AUTH GateKeeperPassport S) { } etc... } } Basically, you can specify a range ($1-3) to give you a defined from-to comparison. You could also do something like $1 $2 $3 =... I know it's a bit scrutinising, but i would also recommend following mIRC's structure and doing the "if statement" correct. You are doing a comparison using 1 "=" sign. With mIRC you should use 2 or 3 "=" characters. Please refer to the mIRC help file under "if then else" for correct syntax. This is just good programming practice if you want to better your knowledge in programming.
  24. hello...? have you even tried my suggestion? The problem with using line feed is that the server is expecting a new command. When you do line feed, it expects that you are doing a new command straight after. I'm reasonably sure this is why it's not working.
×
×
  • Create New...