Author Topic: Event Property multi application questions  (Read 1906 times)

0 Members and 1 Guest are viewing this topic.

Offline GemviperTopic starter

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Event Property multi application questions
« on: December 16, 2016, 07:00:05 PM »
0
Hi,

I've been modifying and testing my looting script, which is a never ending project, and was wondering if there was any advice on the following. I'll try to describe what I've done and what I'm seeing but if I'm not clear enough just ask.

The script performs a single finditem call to find desired items and places all of the results into an array for processing, ignoring, prioritizing and distance checking before proceeding(sounds complicated but I've worked on this the most and it's now efficient). In the past I noticed that since it iterates quickly to process all items it found it would occasionally miss an event property check on one of the items it found. To solve that I put the event property check into a repeat loop until it found something basic like weight or stone, words common to most items, until every item would be processed correctly.

I tested this extensively at live idocs and didn't find any issue with it until... I had a second account running on the same machine that was watching another idoc to get the fall time. That script was essentially looping to check for a condition change but the event property result of that script was being mixed into the event property of a completely different script running on the same machine. I know this because the repeat loop mentioned above would never finish, because the house sign had neither words in it(weight or stone). To solve this problem I washed the house sign out of the loop by adding the word owner and by slowing down the timer script to only check once per minute instead of continually. I eventually found it good to add the locked down check here as well to save having to do it elsewhere in the script, ie: locked , #spc , down not in yada yada...

Great, that should do it, or so I thought. All it did was move the problem over to the other script. If I am looting while the other is watching the sign check fails and at only 1 check per minute it risked timing out. I fixed the timeout loop to not be in the house sign check loop and solved that but it brought up some more interesting findings.

HOUSE WATCHER: If the house sign watching account is directly under the sign then the looting script(and entirely different script being run on the same machine by another account) considers the house sign to be closest and my looting toon begins to run directly towards the sign, even if it's on the other end of the map! It's fooled into thinking the sign is closest, lol. I fixed this by modifying the iteration to automatically ignore house signs... but it got me thinking some more.

Rails, if you have account logged on in Minoc and you want your character to run directly there from say the Britain pass you can make the minoc account finditem of something like an NPC or table or any item near it and have the other account move/pathfind to it. It actually works, assuming you don't get stuck on private steps or in someone's house etc, of course. The 18 tile range does not mean 18 tiles around the character performing the check, it means 18 tiles around any character that is logged in and has performed an event property. Theoretically it's possible to run rails over the entire map if a script logs in a 2nd account near waypoints.

Anyway, back to my question, has a solution been found that stops the sharing of event property results leaking into the results of other scripts on the same machine? It's not my script intentionally using namespace or globals that's causing the leak, it happens with none of that in the script too. How have others solved this sharing of event property results?
« Last Edit: December 16, 2016, 07:07:52 PM by Gemviper »

Offline BobOzarius

  • Full Member
  • ***
  • Posts: 103
  • Activity:
    0%
  • Reputation Power: 2
  • BobOzarius has no influence.
  • Respect: +26
  • Referrals: 0
    • View Profile
Re: Event Property multi application questions
« Reply #1 on: December 17, 2016, 04:30:47 AM »
0
I've never experienced anything like that myself. The only thing I've ever seen is partial properties. And the way to beat that, is to find something near the end of the property that is common to all the properties you are doing, and ensure that is found on each property. You can also count dollar signs. Say you do an event property, and all the items you are scanning will have at least 8 mods on them,  you can do an event property, then do a str count on it, and see if there are at least 8 $'s in the property before continuing. Most of this is usually caused by some sort of lag, and/or latency issue, like dropped packets, or partial packets.

Tags: