Log in

View Full Version : WalkerStuck()



Eion
02-25-2013, 11:57 AM
Requesting a function such as WalkerStuck().

Standtime timers are not good enough.

This could fix so many stuck bots:

If WalkerStuck() = True then
skiptonextwaypoint
end
You would just need Self.Position checks to make sure you did not do other things elsewhere such as try to talk to the npc or deposit items in the cave.

Hendy
02-25-2013, 12:56 PM
Think DarkstaR already said that he won't be updating the bot with anything like that because of certain problems with it being abused or something

DarkstaR
02-25-2013, 02:20 PM
The issue is that if we skip waypoints when the Walker is stuck, it can cause the script to mess up. This is when you see somebody standing in spawn getting killed by Wyrms as they spam "Hi deposit all yes." Not only is it dangerous but it's easy to detect.

Beo
02-25-2013, 02:53 PM
elseif walkerstuck() logout

that would be useful xd

Eion
02-25-2013, 10:10 PM
The issue is that if we skip waypoints when the Walker is stuck, it can cause the script to mess up. This is when you see somebody standing in spawn getting killed by Wyrms as they spam "Hi deposit all yes." Not only is it dangerous but it's easy to detect.

That could be fixed easily, DarkstaR. Simply have something like this when you activate your bank/npc label.


local bankpos = 32000, 32000, 7
local Self.Position() = pos
If pos = bankpos then
continue_the_action
else
skip_to_next_waypoint
end

That would just check if you in a certain position before continuing with the action else it skips to next waypoint. It could be adapted to see if you were within a certain sqm range of a location also. A function could be created for making the coordinate checks easier.

IsLocation(x,y,z)

If you don't plan on adding any of this, please add a WalkerStuck() function so that I can see whether the walker is stuck or not, and some way to advance to the next waypoint (not label) in the walker. I could write the rest of the script I need myself then. This would save me so many stuck/lured/roped bots.

DarkstaR
02-26-2013, 02:41 PM
This adds a layer of complexity. People will neglect to do it, like they have with every other advanced option they have been given, and then blame the bot when it doesn't work or gets them banned.

Hendy
02-26-2013, 04:21 PM
The only problem I have for where this function could be useful is when people rope chars and try get them killed, and but the possibility of this function causing the bot to do stupid stuff is too great.

DarkstaR
02-26-2013, 04:43 PM
The only problem I have for where this function could be useful is when people rope chars and try get them killed, and but the possibility of this function causing the bot to do stupid stuff is too great.

If you are on a new floor, the bot WILL skip until it hits a waypoint on the same floor. Because of this, it is easy to add waypoints which go back down a hole in the middle of the real waypoints. I do this myself.

Hendy
02-26-2013, 05:34 PM
If you are on a new floor, the bot WILL skip until it hits a waypoint on the same floor. Because of this, it is easy to add waypoints which go back down a hole in the middle of the real waypoints. I do this myself.

Oh, never mind then, problem solved ;D

Eion
02-26-2013, 09:11 PM
This adds a layer of complexity. People will neglect to do it, like they have with every other advanced option they have been given, and then blame the bot when it doesn't work or gets them banned.

Well you don't have to add the features into the walker. Just add a function to define if it is stuck, and another to skip to next waypoint. I could build the rest of the script myself... I am sure more people would use this once they know how to use it properly...

As far as being complex... I kinda thought it was supposed to be complex. The best scripts are usually just that.

NNiklaSS
03-02-2013, 11:43 AM
Something that would be great is if the bot dont find the waypoints.. so the bot standing there and do nothing.. Make so the character move around 2-3 sqm untill it find the waypoint. Because when this happen for me I just move by hand 2sqm down or something then the bot starts run again.

Spectrus
03-02-2013, 09:21 PM
In the interim you could just use Self.DistanceFromPosition(x,y,z) like so:

if Self.DistanceFromPosition(x,y,z) == 0 then
Self.SayToNpc({'hi','trade'}, 65)
--more code
else
return
end

Eion
09-29-2013, 01:05 AM
DarkstaR You added the weak node because of what another member suggested, that member even quoted from this thread.

Now how about a
"WalkerStuck()"?

Please? lol

dedi
09-29-2013, 07:36 AM
I'd be so happy if he add Weak Stand (for stairs, reaching doors etc)

DarkstaR
10-01-2013, 01:52 PM
I'd be so happy if he add Weak Stand (for stairs, reaching doors etc)

Weak stands will not be added, due to the things I've mentioned earlier. People would just use weak stands everywhere and then the issues would be the same. Plus, it makes no sense.

The only difference between stand and node is that stand has a requirement to stand on an exact tile, where node is variable and can just come within a range of that tile. Nodes are more of weighted path suggestions, not absolute path definitions, and that is how they are intended to be. Because of this, skipping a node that can't be reached sticks to the pattern of "weighted suggestion," in the sense that it will not hold up the bot if it becomes a hindrance to pathing. Stands, on the other hand, being the defining elements of a paths definite locations, need to be just that - definite. Why would the bot need the ability to stand on an exact tile, but only if it's reachable? That is just a path suggestion, not a definite pathing point.

dedi
10-01-2013, 04:33 PM
Weak stands will not be added, due to the things I've mentioned earlier. People would just use weak stands everywhere and then the issues would be the same. Plus, it makes no sense.

The only difference between stand and node is that stand has a requirement to stand on an exact tile, where node is variable and can just come within a range of that tile. Nodes are more of weighted path suggestions, not absolute path definitions, and that is how they are intended to be. Because of this, skipping a node that can't be reached sticks to the pattern of "weighted suggestion," in the sense that it will not hold up the bot if it becomes a hindrance to pathing. Stands, on the other hand, being the defining elements of a paths definite locations, need to be just that - definite. Why would the bot need the ability to stand on an exact tile, but only if it's reachable? That is just a path suggestion, not a definite pathing point.

People used to skipping waypoints. It was like this on Elf, Blackd, Neobot (dunno how it was with NG). It is much more easier to make script with this (if you know basics of scripting). Ofc it is bad for newbie rotworms script, but it will not work for longer, more complicated places.


Example:

Ofc there is function Self.OpenDoor(), so let's do like this:

Label: Door
Stand waypoint next to the door.
Action: Self.OpenDoor()
Action: wait(100,200)
Stand after Door
Action: if (Self.Position().y > 32423) then Walker.Goto("Door") end --If didn't pass door go back.

How it will work?
Good, except 1 situation:
Someone closes door right after opening it. Your script will get stuck untill someone opens door.

Ofc you can make module for opening doors, that's how I solved this problem.

DarkstaR
10-01-2013, 07:14 PM
If the problem is easily solved, why do we have to break the current waypoint model to fix it? It's not broken. There's just a new way to accomplish it.

Eion
10-02-2013, 03:24 AM
:(

Walker stuck.. true or false....

Tripkip
10-02-2013, 08:05 AM
DarkstaR

I get your ppoint how you would like to keep it easy for the not advanced users, but this makes it harder (or atleast more complicated then needed) for the actual advanced users. Cuz insted of addin a simple waypoint, we have to find a way around with external scripts and other bypasses.

Isnt it somehwat people their own responsibillity to not screw up their own waypoints by not making everything a weak stand. Theres tutorials all over the forum on how to make waypoints/scripts if they dont take time to read those, then they should just stick to buying scripts like the majority does.

Also I dont see any problems in adding functions wich not everyone sees the use of while certain individuals do. For these people that like them and requested them. they can use them for improving their own scripts better (by making them more advanced). While the people that actually dont see the use of them, they can just let em be for what they are.

Some functions might be used impropperly, or people wont know how to use them. But this is mainly the problem with everything thats getting really advanced.
But all the basic functions wich we always had will still be there, and they can still work with that. While all the more advanced users get their piece of the pie by getting more and more functions to work with and therefore make better scripts.

EDIT: Just thought of the following, insted of actually making a Weak stand, Give it the name "Reach" This way the name is actually impliying what it does, and people wont see it as a stand. and therefor it wont mess up the system we currently have?
As you mentioned before, a stand is a stand, and this should and will be the way it is. I agree on that.
But I also Think we should have the thing Mentioned by me, dedi and Eion. a Waypoint that is more accurate then a node, but skipable if it cant be reached within a certain timeframe.

Jah Like I mentioned in this post already, yes it is pretty much possible to use by passes for pretty much every problem. But this is time consuming and unnecessary.
Its a bit like, this: You wanna put a screw into the wall but you dont have a screwdriver, lets use a knife instead.

Flappy Joe
10-02-2013, 10:34 AM
Am I missing something here?

Why cant you just use

Self.DistanceFromPosition() and/or Self.Position()

dedi
10-02-2013, 11:21 AM
Am I missing something here?

Why cant you just use

Self.DistanceFromPosition() and/or Self.Position()

Sorry for this, but I've to ask: are you stupid or what ?
No offence, but if you don't know how bot works, then you shouldn't be moderator.

You have stand and after it position check. Bot will not skip to position check action untill it reach position of Stand waypoint... Then there is no point checking position.
The idea of skipping waypoints is to repeat all actions, utill it reach specific position or condition (like amount of potions etc).

What is the point of making stuckable scripts ? Noone. I will just prefer to don't bot cuz it's waste of power, if everytime some noob/bothater close door in front of my face and my bot stand 6h doing nothing.


If the problem is easily solved, why do we have to break the current waypoint model to fix it? It's not broken. There's just a new way to accomplish it.

I'm 100% sure there are places / things that are not able to solve that easy. I just did not come across. And it's stupid if I got from spawn to depot and my bot open all doors in farmine all way long.

Tripkip
100% agree

Tripkip
10-02-2013, 11:51 AM
Just thought of the following, insted of actually making a Weak stand, Give it the name "Reach" This way the name is actually impliying what it does, and people wont see it as a stand. and therefor it wont mess up the system we currently have?
As you mentioned before, a stand is a stand, and this should and will be the way it is. I agree on that.
But I also Think we should have the thing Mentioned by me, dedi and Eion. a Waypoint that is more accurate then a node, but skipable if it cant be reached within a certain timeframe.

Floppy Jimmy Like I mentioned in this post already, yes it is pretty much possible to use by passes for pretty much every problem. But this is time consuming and unnecessary.
Its a bit like, this: You wanna put a screw into the wall but you dont have a screwdriver, lets use a knife instead.

Jah
10-02-2013, 02:54 PM
Just thought of the following, insted of actually making a Weak stand, Give it the name "Reach" This way the name is actually impliying what it does, and people wont see it as a stand. and therefor it wont mess up the system we currently have?
As you mentioned before, a stand is a stand, and this should and will be the way it is. I agree on that.
But I also Think we should have the thing Mentioned by me, dedi and Eion. a Waypoint that is more accurate then a node, but skipable if it cant be reached within a certain timeframe.

Jah Like I mentioned in this post already, yes it is pretty much possible to use by passes for pretty much every problem. But this is time consuming and unnecessary.
Its a bit like, this: You wanna put a screw into the wall but you dont have a screwdriver, lets use a knife instead.

Why are you mentioning me, something i missed? XD

Tripkip
10-02-2013, 03:15 PM
haha wrong person :o. Your name both starts with a J okay!!! xD

Flappy Joe
10-02-2013, 03:39 PM
Sorry for this, but I've to ask: are you stupid or what ?
No offence, but if you don't know how bot works, then you shouldn't be moderator.

You have stand and after it position check. Bot will not skip to position check action untill it reach position of Stand waypoint... Then there is no point checking position.
The idea of skipping waypoints is to repeat all actions, utill it reach specific position or condition (like amount of potions etc).

What is the point of making stuckable scripts ? Noone. I will just prefer to don't bot cuz it's waste of power, if everytime some noob/bothater close door in front of my face and my bot stand 6h doing nothing.



I'm 100% sure there are places / things that are not able to solve that easy. I just did not come across. And it's stupid if I got from spawn to depot and my bot open all doors in farmine all way long.

Tripkip
100% agree

First of all, I'm a forum moderator, I moderate the forums, I don't need any knowledge of the bot for that.

Second of all, the reason I wrote 'am i missing something here?' is because I had only briefly read through this thread. What if you get stuck at a ladder and you have it to skip to the next waypoint, which is on a completely different level? The bot could reach a deposit label causing you to be spamming "hi, trade, yes" or "hi, deposit all, yes" in the middle of a spawn.
When I used to script last year, I never, ever had a problem, every single one of the scripts I've used since returning to botting have worked perfectly fine, including ones that needed to go through doors.

Anyway, I think DarkstaR has made it clear enough that this wont be implemented.

Tripkip
10-02-2013, 04:45 PM
First of all, I'm a forum moderator, I moderate the forums, I don't need any knowledge of the bot for that.

Second of all, the reason I wrote 'am i missing something here?' is because I had only briefly read through this thread. What if you get stuck at a ladder and you have it to skip to the next waypoint, which is on a completely different level? The bot could reach a deposit label causing you to be spamming "hi, trade, yes" or "hi, deposit all, yes" in the middle of a spawn.
When I used to script last year, I never, ever had a problem, every single one of the scripts I've used since returning to botting have worked perfectly fine, including ones that needed to go through doors.

Anyway, I think DarkstaR has made it clear enough that this wont be implemented.

If all you would make is trolls/dragons scripts then indeed you wont run into many problems with just stands and nodes.

Secondly, If people would only use Weak Stands in their scripts, then yes this would be the case.
But this would be retarded. Because you should. And while we're on the trip of, but this can be solved with ---> "insert random example".
If people would use selfcheckposition() before talking to the npc,Spamning hi,trade, yes wouldnt happen either.
But this would only be the case with IMPROPER USE!
Now we just simply dont have the abillity to do it and have to find ways around it.

I'm not saying there is no downsides on "weak stands" if you are using it impropperly. But They would most definatly bring a huge benefit aswell.

DarkstaR
10-02-2013, 04:59 PM
The problem is that 90% of people would fall under that "improper use" case, release the scripts, give the entire community the bad scripts, and raise ban rates. I have reasons why I do not do things and sometimes they might not make sense to you, but they are there for a reason. Sure, every other bot has done this. Do you mind giving me a comparison between ban rates from other bots? Exactly.

This is XenoBot. It is intentionally different in many ways. The prefix "xeno" means "strange" or "foreign," which is exactly the case here. It is different. Things will work different. You may have to add 5 lines to your scripts in order to make something works that just work in another bot. But you're going to be safer and have a more robust script for having done it, because now your script is not blindly executing but intelligently deciding when to do what.

dedi
10-02-2013, 05:07 PM
So you say saying in mana shop "hi trade yes" is more detectable than trying to pass closed door for 6h :)?

I do not tell you to change whole walking method, just add more options, so people will have choice. If someone doesn't know how to check position nor make script, then he can download/buy from guy who know how to.

For you it's 5 lines, for me it's much much more

5 lines per door / 50 lines per script (farmine doors op) / 1000 lines for farmine scripts / 1700000 lines for all xeno users

Tripkip
10-02-2013, 05:10 PM
So you say staying in mana shop is more detectable than trying to pass closed door for 6h :)?
Well its what he said, but the difference here is that the door is solvable, while spamning the npc for ibot isnt.

DarkstaR
10-02-2013, 05:12 PM
So you say staying in mana shop is more detectable than trying to pass closed door for 6h :)?

I'm saying that spamming "hi deposit all yes" while you are getting PK'd and trapped by magic walls is more detectable than being stuck at a door. As far as their detection system knows, you're mana sitting at that door. However, if it sees you saying NPC terms inbetween heals while you're getting PK'd, or sees you spamming "trade" at a door in the desert, there will be an issue.

dedi
10-02-2013, 05:20 PM
For this is function called Self.DistanceFrom Position(). You can check if you are at good position and if not then go back to label and try to reach again (will repeat all actions like opening door, moving lever etc).
You can also check what floor are you currently (Self.Position().z) etc

I wonder how people want to make lizard city script without weak stand. This weak node you will not work. Or you will be sourrounded by 8 lizards all the time = waste and higher risk of dead.



First of all, I'm a forum moderator, I moderate the forums, I don't need any knowledge of the bot for that.

Second of all, the reason I wrote 'am i missing something here?' is because I had only briefly read through this thread. What if you get stuck at a ladder and you have it to skip to the next waypoint, which is on a completely different level? The bot could reach a deposit label causing you to be spamming "hi, trade, yes" or "hi, deposit all, yes" in the middle of a spawn.
When I used to script last year, I never, ever had a problem, every single one of the scripts I've used since returning to botting have worked perfectly fine, including ones that needed to go through doors.

Anyway, I think DarkstaR has made it clear enough that this wont be implemented.

It's because xeno isn't that popular as iBot was. People did not find out yet that bot will stuck if you close door in front of face :P

DarkstaR
10-02-2013, 05:31 PM
Okay, everyone shut the fuck up. Here is the bottom line.

You are not wrong about how useful this feature is. I never said you were. It is very useful. What you are wrong about is the community aspect. If you give this community a way to fuck something simple up, they will do it, 100% of the time. Whether you agree with that are not, it is the truth. We saw it with Forgee.lua, we saw it with Sirmates library, we see it with Healer Priorities, and I see it in the form of 200 PMs and 20 bug reports every time I add a new feature.

Get your heads out of your asses and realize that there is more to a bot than functionality. I shouldn't need to explain this to you twats for 4 fucking pages and I'm sure you can realize that's why I've just about lost my patience. If I give users a way to break shit, they will break shit. I aim to prevent that at all costs. That is the bottom line. You can fix your problem with a script, and you are more intelligent than the masses I am aiming to protect, so shut the fuck up, write 10 lines of Lua, and go on about your day.


Security > convenience.

DarkstaR
10-02-2013, 05:34 PM
So, to clarify: I can add this function to the scripter. But I'm not going to make any form of weak stand.