Jump to content

Oklahoman

Members
  • Posts

    595
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Oklahoman

  1. 11 hours ago, Blood Speaker said:

    OTOH, there's so many LFG requests on Excelsior at times that some people feel the need to repost their own every few seconds. Especially farm requests.

     

    In my experience, there's no reason to post to LFG more than once a minute, with the exception of a final "Full, thanks!" message. Perhaps you would fill your team or league a little faster with multiple requests to LFG, but that's not been my experience or my observation, and I suspect even if it were true the difference would be negligible.

     

    As for AE farm requests, I think it would be wonderful if someone started a channel for that and we normalized sending channel invites for that in an attempt to move that traffic off LFG. I am absolutely not against farming, but it seems like a big enough portion of our population is into farming that it might be more effective for it to have its own channel. I don't care to run or participate on that channel, so I won't be the one starting it.

  2. 35 minutes ago, Astralock said:

    That's a solved issue on instanced mothership raids.

     

    Even in an instanced MSR, I wouldn't be surprised to find that the league leader would appreciate the ability to promote someone to a team leader position. But, you are correct - in a zone MSR you do have to worry about the star falling to a non-50, but not in the instanced version.

  3. 3 hours ago, Tsugaru said:

    The option to move members to different teams is nice, however, it would be really convenient if the League Leader has the option to promote any member of any team to team leader.

     

    I agree. This happens with MSRs, as well, where the team leader D/Cs and the new team leader has no clue how to pass their star to someone else. Likely, they don't even know how to tell who is 50 on their team.

     

    To expand a bit further, I wish the league leader were included, and could communicate on, any given team channel in the league.

     

    3 hours ago, Tsugaru said:

    ToT leagues are a nightmare

     

    Well said, couldn't agree more.

  4. 3 minutes ago, Snarky said:

    I'm jealous, there is an "On Hold" thread, a "Hold on" thread, and I cannot think of something that fits the pattern to start a topic on...Hold on Hold....On Hold On.... Holdon....Onholdon....hmmmm 

     

    Hodor?

    • Like 1
    • Haha 3
  5. On 9/29/2022 at 5:25 PM, WanderingAries said:

     

    I'm sure I have Hypercard on the G4 if you'd like me to order a Zip disk for you.

     

    If we're getting a group together to buy Zip disks in bulk, count me in.

     

    I had fun explaining to a group the other day that the predecessor to the internet was SneakerNet.

  6. 45 minutes ago, Zhym said:

    I find it interesting, given your post about wanting people to ask for invites in broadcast rather than tells (hey, it's right there in your signature!), that this script sends a tell by default.  Maybe you could add another keyword check to see if the message includes the words "tell," "PST," "broadcast," or "shout" to determine whether the text to paste is formatted as a tell or a broadcast?

     

    I can see that. Personally, I only ask for stuff to be posted in Broadcast for MSRs and Hamis (if I ever run one again) for the reasons outlined in that link, but I also understand other leaders may have different thoughts on the matter. If someone had "MSR" as a keyword and tried to respond with this tool, I wouldn't respond, honestly. All other times it would be fine, though.

     

    But, yeah, I imagine the code could try to guess how best to respond. The code could look for the other keywords you suggest and then change it from a tell to a broadcast based on what it finds. You'd have to prioritize somehow for posts like "DFB - send me a tell or holler in broadcast" - perhaps the first option mentioned in the ad? You'd have a hiccup with some ads like "DFB looking for stellar people, BROADCAST ONLY!"

     

    The sound could be changed to other audio files rather than a beep, and even customize that by keyword so a BAF plays "Tiny Bubbles" while an MoDD might play "Enter Sandman."

     

    If there's interest, and perhaps something noticeably north of zero downloads, I could probably give some examples. Hopefully the young folk with all their computerizing skills will do it for me, though.

  7. Decided to try this in real time. If you have dual monitor capabilities, you can have the powershell running on one monitor while you play on the other (see pic). I decided to change the code on my end slightly - I changed the output on line 62 to act more as an alert, rather than just telling me what just got placed on my clipboard. I inserted line 63 after that to make a beep, too, so if I was playing and something popped up I wanted to join I'd have both an audio and visual alert.

     

    Spoiler

    #COH AutoResponse - 9/28/22 (2nd version)
    #Original code written by @Oklahoman
    #NOTE: In game, you must turn on chat logs - MENU -> Options -> Windows -> Log Chat (Enabled)
    #NOTE: This will create text files in your COH install directory -> username -> logs folder
    #NOTE: Periodically, you may want to archive or delete these files as they will pile up, one file for each day you play!
    #NOTE: Please share alterations to this code to the Homecoming forums (https://forums.homecomingservers.com/) in the
    #NOTE: "Tools, Utilities, and Downloads" forum
    #NOTE: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.1
    #NOTE: You will need to set execution policy for local user to Unrestricted, and understand the consequences of that
    #NOTE: Save this file with a .ps1 extension. Right click and select "Run with Powershell" to execute. YMMV
    #The intent is to monitor LFG for keywords, and when found create a request to join and place it in the players clipboard
    #In game, when you see something advertised you are tracking below, you can hit ENTER, CTRL-V, ENTER to send a request for invitation

    #Opens a file picker window
    Add-Type -AssemblyName System.Windows.Forms
    $FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
    $FileBrowser.filter = "Txt (*.txt)| *.txt"
    [void]$FileBrowser.ShowDialog()
    #TODO: Gracefully handle user hitting cancel

    #Open selected file so we can read it while COH continues to write to it
    $File = [System.io.File]::Open($FileBrowser.FileName, 'Open', 'Read', 'ReadWrite')

    #only include lines in output that have these keywords in them
    #Array is Filter, WhereToSubstringFrom - we do not use WhereToSubstringFrom in this script, but too lazy to remove everything associated with it right now!
    #Add any and all keywords here, following this same pattern

    $keywords = @("DFB", "Posi", "Numina")

    $newstreamreader = New-Object System.IO.StreamReader($File)

    #TODO: maybe some code that compares the date data in $newstreamreader to todays date, and alerts when you have passed midnight. As it stands now, you need to close and rerun this immediately after midnight or it will continue to monitor the now-previous days log file.

    $bFlag = 1;

    While ($bFlag -eq 1) {
        #Are we at the end of the file?
        if (($readeachline = $newstreamreader.ReadLine()) -ne $null) {

            #remove HTML from line
            $a = $readeachline -replace '<[^>]+>',''

            #Ignore lines not coming from a chat channel at all, such as influence gained, who killed what, etc.
            if ($a.Substring(20,4) -eq "[Loo") {
                if ($a.Substring(20,19) -eq "[Looking For Group]") {
                    #Ignore any line that does not have [Looking For Group] in a specific spot.
                    foreach ($keyword in $keywords) { 


                        #Looking for any of the filter words occuring after the date and time info
                        if ($a.IndexOf($keyword) -gt 1 ) {
                            #We found a keyword from the $keywords list above
                            $b = $a.Substring(20)
                            #So $b now consists of all the text in the line AFTER the date and timestamp
                        
                            #Within $b, find the first ":" which indicates the end of the PlayerName
                            $PlayerColon = $b.IndexOf(":")
                            $PlayerNameLength = $PlayerColon - 20
                            $PlayerName = $b.Substring(20, $PlayerNameLength)
                        
                            $Plea = "/t " + $PlayerName + ", Can I join that " + $keyword + " you are forming, please?"
                            Write-Host "Looks like a $keyword may be forming!"
                            [console]::beep(1000,500)
                            #Adds to clipboard
                            Set-Clipboard -Value $Plea
                        }
                    }
                }
            }
        }
    }
    #You're going to hit Control-C or close the window before this hits, but whatevs
    $newstreamreader.Dispose()

     

    IMG_0494.jpg

  8. This is a Powershell script you might run in the background while you are playing the game. It will monitor your log file for keywords (such as "DFB" or "Posi") and when found will create the text for a tell and place it on your clipboard.

     

    In game, theoretically, when you see someone advertise a DFB (one of the keywords you've defined in line 28), you can quickly hit ENTER to start a new message, Control V to paste from your clipboard, and then ENTER again to send the message. This would allow you to quickly respond to new postings by sending a tell directly to the organizer.

     

    Note that the script doesn't differentiate between "I am forming a DFB" and "I would like to join a DFB" - so long as the keyword is found in a new LFG post, the clipboard will be populated. Also, since log files are for 1 day only, if you play across midnight you will want to close and restart this for the new day.

     

    Here's the script if you prefer to look at it that way:

     

    Spoiler

    #COH AutoResponse - 9/28/22 (2nd version)
    #Original code written by @Oklahoman
    #NOTE: In game, you must turn on chat logs - MENU -> Options -> Windows -> Log Chat (Enabled)
    #NOTE: This will create text files in your COH install directory -> username -> logs folder
    #NOTE: Periodically, you may want to archive or delete these files as they will pile up, one file for each day you play!
    #NOTE: Please share alterations to this code to the Homecoming forums (https://forums.homecomingservers.com/) in the
    #NOTE: "Tools, Utilities, and Downloads" forum
    #NOTE: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.1
    #NOTE: You will need to set execution policy for local user to Unrestricted, and understand the consequences of that
    #NOTE: Save this file with a .ps1 extension. Right click and select "Run with Powershell" to execute. YMMV
    #The intent is to monitor LFG for keywords, and when found create a request to join and place it in the players clipboard
    #In game, when you see something advertised you are tracking below, you can hit ENTER, CTRL-V, ENTER to send a request for invitation

    #Opens a file picker window
    Add-Type -AssemblyName System.Windows.Forms
    $FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
    $FileBrowser.filter = "Txt (*.txt)| *.txt"
    [void]$FileBrowser.ShowDialog()
    #TODO: Gracefully handle user hitting cancel

    #Open selected file so we can read it while COH continues to write to it
    $File = [System.io.File]::Open($FileBrowser.FileName, 'Open', 'Read', 'ReadWrite')

    #only include lines in output that have these keywords in them
    #Array is Filter, WhereToSubstringFrom - we do not use WhereToSubstringFrom in this script, but too lazy to remove everything associated with it right now!
    #Add any and all keywords here, following this same pattern

    $keywords = @("DFB", "Posi", "ASF")

    $newstreamreader = New-Object System.IO.StreamReader($File)

    #TODO: maybe some code that compares the date data in $newstreamreader to todays date, and alerts when you have passed midnight. As it stands now, you need to close and rerun this immediately after midnight or it will continue to monitor the now-previous days log file.

    $bFlag = 1;

    While ($bFlag -eq 1) {
        #Are we at the end of the file?
        if (($readeachline = $newstreamreader.ReadLine()) -ne $null) {

            #remove HTML from line
            $a = $readeachline -replace '<[^>]+>',''

            #Ignore lines not coming from a chat channel at all, such as influence gained, who killed what, etc.
            if ($a.Substring(20,4) -eq "[Loo") {
                if ($a.Substring(20,19) -eq "[Looking For Group]") {
                    #Ignore any line that does not have [Looking For Group] in a specific spot.
                    foreach ($keyword in $keywords) { 


                        #Looking for any of the filter words occuring after the date and time info
                        if ($a.IndexOf($keyword) -gt 1 ) {
                            #We found a keyword from the $keywords list above
                            $b = $a.Substring(20)
                            #So $b now consists of all the text in the line AFTER the date and timestamp
                        
                            #Within $b, find the first ":" which indicates the end of the PlayerName
                            $PlayerColon = $b.IndexOf(":")
                            $PlayerNameLength = $PlayerColon - 20
                            $PlayerName = $b.Substring(20, $PlayerNameLength)
                        
                            $Plea = "/t " + $PlayerName + ", Can I join that " + $keyword + " you are forming, please?"
                            Write-Host $Plea
                            #Adds to clipboard
                            Set-Clipboard -Value $Plea
                        }
                    }
                }
            }
        }
    }
    #You're going to hit Control-C or close the window before this hits, but whatevs
    $newstreamreader.Dispose()

     

    DISCLAIMER: I am not a coder (obviously) but I was at one time until I took an arrow to the knee. I dabble now, and I am confident any half-skilled coder could do a much better job with this, even creating something that doesn't require Powershell. Please share if you do!

    COH AutoResponse.ps1

    • Like 1
    • Thumbs Up 1
  9. On 9/27/2022 at 8:53 AM, Oklahoman said:

    It does occur to me at the very end of this long-winded post that you could adapt some of what I have written in Powershell to monitor LFG for you in the background while you play, and whenever a keyword appears (for instance, "BAF") the script could create the command line for you (/t {PlayerName}, "Hey, I'll join that {keyword} please!") and put it in your copy/paste buffer. In-game, whenever you saw a BAF advertised you could just hit enter, CTRL-V, enter and the organizer would get a direct tell from you. I'm sure there are much better programmers around who could do it better than I could, but that would be one way I could think of that might work.

     

    Here's something you can try. I modified another script I wrote for this and it seems to work, but it also throws out some ugly errors that don't impact it's operation. You would leave this running in powershell while you play, and anytime any of they keywords you input on line 28 of the code show up in LFG it will put on your clipboard a response. In game, when you see one of those keywords pop up - say "DFB" - you would hit ENTER to start a message, Control+V to paste the message from the clipboard, and ENTER again to send it.

     

    There are wrinkles to this - if someone posts an ad for a "Posi" and before you can respond someone else posts to LFG "I'll join that Posi" - you could end up responding to the second person, not the first. In other words, the code can't distinguish between "I'm forming a Posi" and "I want to join a Posi" and will create a response either way.

     

    Use at your own risk.

     

    UPDATE: Updated and removed attachment and placed it here instead:

     

  10. 10 hours ago, UltraAlt said:

    How is it a technicality for someone to use the /lfg to communicate with someone that is recruiting for a team and/or to reference your message per minute rate on the channel?

     

    The issue I have here is the vagueness - "I'll join". If the person is sending a message to LFG that says "I'll join THAT BAF" or "I'll join THAT ITF" that's at least somewhat useful. A simplified version of "I'll join the thing with the people and the stuff" is not. I understand that on smaller servers where there could literally be minutes between LFG posts you could do that and it wouldn't be a problem - perhaps even welcomed. I am speaking from the Excelsior side where that will simply add unnecessary and unhelpful traffic to a busy channel. Technically, sure, "I'll join" is a valid thing to post to LFG, but it is also probably one of the least efficient ways to get what you want in this case.

     

    10 hours ago, UltraAlt said:

    I think it will up their chances of getting on the team.

     

    Agree to disagree, then. As me and one other league leader have mentioned, we are not looking to LFG for responses to an ad, so YMMV.

     

    10 hours ago, UltraAlt said:

    It is clearly stating that they would like to join the team.

     

    Simply sending "I'll join" to LFG is saying that you would like to join... something. It's not saying or indicating what. That may be obvious on smaller servers where there could literally be several minutes between posts to LFG, but not on all servers.

     

    10 hours ago, UltraAlt said:

    Several of us also directed them that they could click on their name to get the option to send them a direct tell. They may not have known that.

     

    And I have not corrected you or others in any way on this as a response. It is a far superior solution to simply posting "I'll join" to LFG in all cases except those where the post specifically says something like "NO TELLS" or "Post in BROADCAST ONLY" or some instruction like that. OP was asking for a macro to send a tell to someone who just posted an ad, and there isn't a way to do that as far as I and anyone else can produce.

     

    10 hours ago, UltraAlt said:

    You are really getting argumentative with me. I don't know why other than you may want to join my ignore list.

    If that is the intent, just ask me to put you on my ignore list.

     

    Do what you want, but to be clear - I am against encouraging people to create a macro that sends "I'll join" to LFG. That's it, and honestly it feels a little crazy that I have to explain why that is a bad idea to anybody. I don't think we're doing a service to the players or the community to promote that as a solution to anything.

     

    I guess being added to your ignore list is supposed to be a threat, and I'm not really in the business of doing that myself here on the forums. What I will say is that if - emphasis on the word if - someone were to use such a macro as you propose in-game, get frustrated with still getting no response because leaders like myself aren't monitoring LFG for responses to our ads,  and they maybe decide to hit the macro button 10 times in a row out of frustration, I and probably several others would probably add that player to our gignore list and report them for spamming. 

  11. 8 hours ago, UltraAlt said:

    I'm assuming if there is only 3.25 posts per minute. It is most likely to be to the last poster.

     

    I think you are working too hard to try to defend  your stance.

     

    Perhaps I am. LFG in general is a big pet peeve of mine. And maybe you are working too hard to defend a technicality. As I said earlier:

     

    22 hours ago, Oklahoman said:

    I don't know how other leaders feel about this, but I am not monitoring LFG for people to invite.

     

    OP is bemoaning the fact that:

    On 9/25/2022 at 6:35 PM, grazerlor said:

    Im so tired of not getting tells in time to get on a team that is being advertised.

     

    I don't think vaguely stating - really on any channel (except maybe on broadcast and local, in certain circumstances) - "I'll join" is going to fix this for them. At least not in my case, and other leaders who lead as I do. But maybe it will, I don't know. Usually when the waitress asks what I would like and I say "food" that doesn't seem to get me what I want. It's technically a correct use, but probably not the most efficient way to get what I am wanting.

     

    OP is asking:

    On 9/25/2022 at 6:35 PM, grazerlor said:

    Is there a macro that I can make that says something like "I'll join" in a tell to folks looking for people?

     

    Unfortunately, there isn't such a thing, and I think OP recognizes that a direct tell to a leader is probably, generally, in most cases... more efficient in terms of getting on a team. Otherwise OP would have asked "How do I spam LFG most efficiently?"

     

    But that's just how I see it.

     

    It does occur to me at the very end of this long-winded post that you could adapt some of what I have written in Powershell to monitor LFG for you in the background while you play, and whenever a keyword appears (for instance, "BAF") the script could create the command line for you (/t {PlayerName}, "Hey, I'll join that {keyword} please!") and put it in your copy/paste buffer. In-game, whenever you saw a BAF advertised you could just hit enter, CTRL-V, enter and the organizer would get a direct tell from you. I'm sure there are much better programmers around who could do it better than I could, but that would be one way I could think of that might work.

    • Like 1
  12. 5 hours ago, UltraAlt said:

    There is nothing wrong with posting "I'll join" on the /lfg channel.

     

    No, not technically. I'll give you that. I gave a couple reasons earlier why I really don't recommend doing it this way, though. The other thing that could come of that, too, if people start doing this, is increased traffic through LFG that just makes it harder to actually form teams.

     

    I just finished playing a 2 hour stretch, and during that time there was an average of 3.25 posts to LFG per minute (assuming I did the math right). It was a good evening as far as I can tell - no conversations in LFG, so the communication there was pretty efficient and lite. But imagine posting "I'll join" to LFG and now 3.25 people are wondering if you're talking to them. So you accept an invite, but it's not who you wanted to join, and the other two gave up when they saw you were considering another offer figuring you didn't mean them. Now imagine this practice is pretty routine and 3.25 people per minute are posting "I'll join" alongside the 3.25 people per minute posting to form teams and leagues. Sounds pretty chaotic to me.

     

    We get that a lot in Ouro during busy times. People pop in to Ouro and say something vague like "I'll join" or "me please". Then we have to sort that out with the player, or just ignore it, or talk between the league leaders and do some version of rock, paper, scissors to see who wants to grab them.

     

    Anyway, I just think we shouldn't encourage people to be vague in this way, that's all.

    • Like 2
    • Thumbs Up 1
  13. 2 hours ago, biostem said:

    I wonder if a better option would be some sort of "request invite" option, where a team leader would simply get a popup like "biostem would like to join your team [Yes]/[No]".  Of course, this would also need an option to disable it, so people couldn't grief or abuse team leaders...

     

    I do like the idea, but as @Rudra mentioned I think it's problematic. To not be annoying, it would have to detect if you team was already full, for instance. As a frequent leader it would be a feature I would not have on. But I do like the path you are on. Anything to make forming teams and leagues easier is A-OK with me.

    • Like 1
    • Thumbs Up 1
  14. When you click on a player name, it would be great to have some "Quick Message" options, including "Invite me, please." Behind the scenes the game would just do a /t {PlayerName}, "Invite me, please."

     

    I'd also like to see an option there to email them, like you might send a prize at the end of an event. You would click the player name, select Email, and behind the scenes a new message would be started to getglobalname({PlayerName}) that you could complete and send.

  15. 13 hours ago, biostem said:

    The problem is, if you want to send a private message/tell to a particular person, you'd have to click or otherwise copy-paste their name into the chat box.  I suppose you could do:

     

    /macro LFT "lfg I'd love to join your team!  Please invite me!"

     

    The above will create a button on a power bar labeled "LFT" which when clicked, simply sends a basic message to the LFG channel, advising you want to join.  You can just click it to post that message into said LFG chat as needed.  Thank you.

     

    I don't know how other leaders feel about this, but I am not monitoring LFG for people to invite. And I also don't think we should encourage people to flood the LFG channel with messages like this, especially on busy servers like Excelsior. For one thing, when there are already several posts to LFG per minute, how would I know from this message that someone wants to join MY team/league rather than someone elses? A more generic "Level 50 Tank looking for anything" would be just as effective, I would think, and more useful to the channel.

     

    If I advertise something to LFG I am looking for a request to come via tell, broadcast, or local unless I've specified otherwise (like with an MSR where I only invite from broadcast). In some cases, like with iTrials, if I happen to notice in LFG that you've asked for an iTrial, I might invite directly from there, or if they happen to mention me. But that's not where I am actively looking for people to invite.

     

    To @grazerlor's point, in general, I don't think there is a macro that's going to help you in the way you want here. I think your best bet, unless the LFG ad says otherwise, is to click the name and Send Message. Some league leaders and I have commented elsewhere that we often get responses that say "sure" or "x" or even just a blank space. If you can manage something relatively polite that's always appreciated, but honestly I feel your pain and (with the exception of an MSR) I will go ahead and invite no matter what you manage to send.

     

    Also, saying things like "keep me in mind if you have an opening" or "if you run again, I'd like in if you can remember" work wonders. Many times when my league zones into an iTrial someone declines, and as soon as I can I invite the next available person.

    • Like 1
  16. On 4/29/2020 at 11:20 AM, Crysis said:

    Would actually be sorta fun to use it not just for catching saboteurs but rather as a League leader for announcing who got the killing shot, etc.

     

    BTW: the /demorecord option doesn't actually create a text file until you /demostop it, so I'm not sure Splunk would help you there. Definitely could be used on the log file, though, to get kill shots. I have a powershell script I run while streaming (when I do it, haven't streamed in a while) that catches the kill shot info, as well as anything sent to the local channel, and embeds it into my Twitch stream.

     

    Also, updating the original post with some updated findings.

×
×
  • Create New...