Jump to content
Macro Express Forums

Jim Korenthal

Members
  • Posts

    17
  • Joined

  • Last visited

Jim Korenthal's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. You're quite welcome, Alex. I'm glad my suggestion helped you out!
  2. Hi Alex, There's a command in the Macro Control section called "Macro Stop." This will immediately stop your macro and any macros which may have called it. Alternatively you can issue "Macro Return," which will stop the current macro and return control to the calling macro. Now the problem is, how do you know when to issue one of those commands? As far as I know there is no way in ME to test whether a key has been pressed. (You can wait for a particular key to be pressed, but that's a different thing entirely.) I wish ME did have such a capability (or if it does, for one of the gurus here to point out how to do it)! Can you use the mouse to signal that your macro should stop? If so, I'd suggest you either use the "Get Mouse Position" command and test whether it's in a particular position (like the upper left hand corner of the screen, [0,0]), or alternatively you can use the "If Window Not On Top" command and click outside of your game window to signal that the macro should stop. Good luck, Jim
  3. Okay Kevin, thanks. Any information at all would be helpful, even just the type of command that caused the crash. If I can get a clue or two, maybe I can pin the problem area down and 1. create a workaround for my system and 2. provide more context for your programmers to work with. Cheers, Jim
  4. Bump. I'm still having the problems mentioned above. I'm tearing my hair out trying to isolate the problem, having no luck. Is this my fault or ME's? Please tell me whatever you can so I know how to proceed. Thanks Jim
  5. Hiya naenyc from a fellow nyc'er, even if you did mistakenly call me a gentleman, hehe. Automating SWG? Sure why not, the project I did to learn ME was automating AC2 (Asheron's Call 2, to the mmorpg-challenged). The games of course are very different so I can't give you specifics, but they're both real-time client-server dealies and I'm sure you'd use similar automation techniques. I did very little of the project using capture. Most of the time I just programmed what I wanted directly into the Script Editor. I wrote my system in little pieces, testing each piece thoroughly by itself and linking them together with Macro Run commands. Whenever possible, I favored the keyboard over the mouse for increased speed and reliability (overcoming server lag can be a problem). A few times I was forced to use capture to create a piece of a macro which dragged an item from one part of the game screen to another. One indispensable tool I used was the Mouse Locator. With this little box on the screen I was able to easily figure out mouse coordinates to insert into my macros. Oh -- are you running the game in window mode? Although it's possible to develop macros for full-screen mode it will make your life much easier to use a window, for both programming and debugging purposes. And don't forget to make all your mouse coordinates window- rather than screen-specific! Unless you want to go to more trouble than it's worth (IMO), you'll have to decide on a single window size/display resolution and program with that one in mind. Otherwise you'd have the devil of a time trying to figure out mouse positions, and I'd suspect that it would be impossible to do more advanced things like screen scraping if you need to determine if specific display elements are present. Well that's all the advice I can think of offhand. While harder than automating a business application, handling a real-time graphics game is a blast to do and it's really fun to see your guild-mates say things like, "How the heck did you do that?" Best of luck, Jim
  6. Hi Pete, I'm very interested in Joe and the others' response to this. Could you clarify which "queue" you're talking about? My understanding was that ME cannot start a macro while another one is running, and therefore no execution queues would be necessary. I tried to simulate your situation with the following two macros: Test1 puts up a box for 1/2 second and then ends. It is set to fire up every 2 seconds. Test2 simply disables Test1. I found that if I ran Test2 when Test1's box was down, it unfailingly disabled Test1 immediately -- I saw no more boxes. And if I tried to run Test2 while Test1 was active (the box showed), nothing happened and Test1 was not disabled. These results were consistent with what I expected. That said, unless the guys who really know ME have a better idea, I think your registry workaround is very reasonable -- I'd use it myself with no twinges of the internal kludge guiltmeter. - Jim
  7. Richard, there's an easy solution which will "almost" solve your problem. If you define a macro's activation to be on a left mouse click anywhere on the screen (look at Properties, it's easy to do this), it will trap all your left clicks without passing them on to the underlying program. (Note that this is different from "Wait Left Mouse Click," which does pass the click on.) This will let you do what you want and then decide whether to pass the mouse click through (by issuing a Mouse Left Button Click command). You'd have to be careful that this macro only wakes up when you want it to -- you should be able to control that with the Macro Enable and Macro Disable commands. Of course this solution doesn't guarantee that you're actually clicking on a hyperlink. If you needed that guarantee you could probably get it with some clever "get pixel color" programming, but this would take a bit of work. Good luck, Jim P.S. It occurred to me right after I posted this that if you restrict the macro to your browser's window (using the Scope tab) and instead of activating mouse clicks across the whole screen, you did it "within window" and specified just the text area of your browser, you'd be catching hyperlinks and very few clicks for other reasons with no additional programming. Depending on what your macro does, this might even obviate the need for the Macro Enable/Disable kludge.
  8. Hey Richard, You had the luxury of using punch cards when you learned to program? Cool! I hadda use paper tape... and program in 'machlang' -- machine language -- because it was too painful to use an assembler that punched out a symbol table, read that tape back in, punch out object code, read that back in to run your program, hehe. Re shortcut keys, how about remembering one key which fires up a Macro Express menu? You can still have hotkeys for your various macros, but if you forget any of them just bring up the menu and get to them that way. I created a two-level menu which groups things in categories that are easy to remember. So if I want to summon my beetle (hehe don't ask), I press Ctrl+X for the menu, then B for the beetle submenu, then S for summon. Works great! No carbs too! As far as voice triggering goes, I don't use it myself but I find it hard to believe that a quick search of the net wouldn't yield a few solutions for you. If you can get voice software that responds to your daughter's melodious "Hi Dad" by forcing a keypress or opening a program, you should then be able to easily get ME (as in Macro Express, not 'me', I have my own daughter ) to open your check register and transfer some money into her account. Cheers, Jim
  9. Hehe I hadda laugh at "rant all day and they have no clue what I'm talking about." You reminded me of something I heard the other day on the online game which is the realtime system I'm controlling in order to explore ME. A friend from the Netherlands works (at a very serious job) with another player, and the two of them were in the company cafeteria. They got into an argument about the new crafting system in the game and were heatedly saying things (in Dutch yet, lol) like, "No, you can't butcher corpses more than 8 levels below you, you just wind up mutilating the corpse and you'll never get your sinew that way!" After a while they noticed that all the tables near them in the otherwise crowded cafeteria were empty. Imagine that! - Jim
  10. Kevin you're probably the only one who can answer this, but if anyone else can offer insight (hehe no pun intended) or debugging tips, please pipe in, I'm really stumped here. The macro in question controls a single client in a real-time client/server system. It depends on other clients interacting with it at totally random times. It is actually a series of about 150 intertwined macros called via Macro Run (and in a very few cases, Macro Run in Variable). The system runs fine for the most part, but I occasionally get a hard crash which totally brings down ME and generates a bug report. This happens anywhere from 5 minutes to an hour or so after I start the system, which is unfortunate because the system is designed to be run 24/7. I submitted bug reports yesterday and this morning -- the first one gave an invalid pointer reference and today's was an access violation. Here is the first part of the bug report: Report: #00013 - 7/9/2004 12:01:32 PM Reported by: Jim Korenthal - JKorenthal@aol.com Platform: Windows XP Windows 5.01.2600 Service Pack 1 Memory: Total Physical: 1024 MB Starting Available: 728 MB Ending Available: 213 MB Program: Macro Express Player v 3.5.0.1 Error Type: EAccessViolation Message: Access violation at address 004044F0 in module 'MacExp.exe'. Read of address FFFFFFFF Address: 0x004044F0 Running macro: HoboSlots Steps to Reproduce or What was Happening: Call Stack: [0049F247] [0049F0FE] [005F0233] The stack is very long -- here are the last three reported values: [0045BA1E] [0045BC3E] [005F23B3] ---------------< ISS Bug Reporter v 2.0.0.1 >--------------- I can't for the life of me figure out what's causing this crash! If it's something I'm doing, I need to find out what it is and correct it. If it's totally an ME issue, I need to understand how I'm triggering the problem so I can devise a workaround. Needless to say, the crash is not reproducible and I can't pin down the exact circumstances under which it occurs. I tried adding error logging to some low-level routines in an attempt to localize the problem but unfortunately, this slows the system down too much and I can't get the necessary interactions to run it properly. I need some guidance here -- can you offer any information or suggestions? Thanks so much, I know this one ain't easy. - Jim
  11. Hiya Linda, welcome to the forum! Macro Stop immediately terminates macro execution. In other words, in your example both macros would stop. There is another command, Macro Return, which kicks out of a single macro as soon as it is encountered. This works the same as flowing off the end of a macro. You wind up at the command after the Macro Run in the calling Macro with no indication that premature termination has occurred (so yes, you'd need a status variable to tell the difference between flowing off the end and Macro Return). Regards, Jim
  12. Hi Renée, It's a little hard to understand exactly what the problem is from your description. I think I get it but forgive me if I'm offbase with this reply: "They" might have indeed messed up, and your macro may be fine (but not acted on correctly by the software it's controlling). I'm sure you realize that a macro is only simulating a user's actions... have you tried slowly and carefully typing (and mousing if appropriate) the exact same things the macro does? It seems to me that that should categorically determine whether it's the macro or the underlying system that's going astray. Good luck, Jim
  13. Woohoo Matt, I think you've done it! The forum remembered me!
  14. I haven't used Invision Power Board forums before, so maybe I'm doing something silly but I'm having two problems with this forum: 1. The forum doesn't remember me! I have to log in again every time. I went to the members area and made sure the right button was set, but still no joy. 2. Does the forum keep track of my last visit? If so, I can't tell which threads have messages I haven't read. I assumed this would be indicated by the symbols on the left of the thread name, but the little envelopes and arrows don't correlate to anything I can make sense of. Maybe (2) is related to (1) and it's just that the software doesn't remember anything about me? I'm beginning to feel a little like "Cellophane Man" in the play "Chicago," hehe... Does anyone know what's going on and perhaps what I'm doing wrong? - Jim P.S. I have nothing on my system that I know of which would stop the forum software from leaving a cookie.
×
×
  • Create New...