Was there a new update, and it fucked up every script? The only script i have been able to use properly is the rook one, and the rest all try to make me walk back in forth in town no matter what script it is
Printable View
Was there a new update, and it fucked up every script? The only script i have been able to use properly is the rook one, and the rest all try to make me walk back in forth in town no matter what script it is
http://forums.xenobot.net/showthread...XenoBot-v3.2.4
I tested today my scripts today and everything works fine so seems like it's badly wrote script after all.
I can't use yours because I am a 35 RP, but the yalahar script for minos and elves is the one that came closest for me to working, but everytime it gets back to town all it does is walk back and forth to and from bank to shops
Did it work before the update ? It seems like you just don't have enough cap to buy supplies or enough gold in bank.
I have plently of gold, and I just started using xenobot today. cap you might be right
It doesn't really seem badly written, it just gets confused and goes back to step one after buying supplies and i have plenty of money and cap left
Can you guys stop being idiots and focus on the question in hand: @Rydan @Nakuu.
The OP states that the script is walking back and forth. If the scripts were badly written, based on the information @DarkstaR provided us with in the update thread, the only thing that will be different is that the walker may wait for longer than is necessary, or just not restart after a label. It would not lead to this kind of issue. So, stop throwing insults at people, and start doing something productive. From where I'm standing, all I can see is people sucking up to DarkstaR and trying to insult other people, not knowing who they are in fact insulting.
@inadequate - Are you able to post the lua file somewhere? Or is it a paid for script? If it's paid for, contact the vendor, otherwise, post the Lua file and I will take a look and see if I can spot the error. It would also be handy if you could post it on www.pastebin.com, that way I can view it from my tablet and respond on the bus tomorrow.
---------------------------------
-----Yalahar Minos or Elves------
----By Xiaospike & Joshwa534-----
------------Enjoy!!!-------------
---------------------------------
--------- BP SETUP ----------
-- [BP 1] - Main + Rares
-- [BP 2] - Products
-- [BP 3] - Gold
--------- DP SETUP ----------
-- [DP 1] - Rares
-- [DP 2] - Products
------ REFILL SETTINGS ------
local MinMana = 1 --- How many mana potions until you leave the hunt.
local MaxMana = 50 --- How many mana potions you begin the hunt with.
local MinHealth = 1 --- How many health potions until you leave the hunt.
local MaxHealth = 25 --- How many health potions you begin the hunt with.
local GoldBP = 8860 --- Item ID of your gold backpack.
local MinCap = 5 --- Leaves spawn when character reaches this cap.
local HideEquipment = true --- Do you want to minimize your equipment?
local LogoutStamina = true --- Do you want to logout at 16 hours? (Inside the depot)
local MaxAmmo = 15 --- How many spears you begin the hunt with.
local MinAmmo = 1 --- How many spears left when you leave the hunt.
----- LOCATION SETTINGS -----
local Elves = false --- Do you want to hunt the Elves?
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
-------------------- DO NOT TOUCH THIS CODE ------------------------
---------------------- IF YOU DO NOT KNOW --------------------------
---------------------- WHAT YOU ARE DOING --------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
print([[
Yalahar Minotaurs or Elves by Xiaospike & Joshwa534]])
wait(5000)
function onWalkerSelectLabel(labelName)
if (labelName == "checker1") then
Walker.ConditionalGoto((Self.ItemCount(268) <= MinMana) or (Self.Cap() < MinCap) or (Self.ItemCount(266) <= MinHealth) or (Self.ItemCount(7378) <= MinAmmo) or ((LogoutStamina) and (Self.Stamina() < 840)), "leave1", "keepHunting1")
elseif (labelName == "checker2") then
Walker.ConditionalGoto((Self.ItemCount(268) <= MinMana) or (Self.Cap() < MinCap) or (Self.ItemCount(266) <= MinHealth) or (Self.ItemCount(7378) <= MinAmmo) or ((LogoutStamina) and (Self.Stamina() < 840)), "leave2", "keepHunting2")
elseif (labelName == "checkHuntSpot") then
Walker.ConditionalGoto((Elves), "toElves", "toMinos")
elseif (labelName == "GotoTown") then
Walker.Goto("toTown")
elseif (labelName == "checkstuff") then
local ESTMana = (MaxMana-20)
Walker.ConditionalGoto((Self.ItemCount(268) < ESTMana) or (Self.ItemCount(266) < MaxHealth) or (Self.ItemCount(7378) < MaxAmmo), "resupply", "tohunt")
elseif (labelName == "bank") then
local withdrawManas = math.max(MaxMana - Self.ItemCount(268), 0)*50
local withdrawHealths = math.max(MaxHealth - Self.ItemCount(266), 0)*45
local withdrawAmmo = math.max(MaxAmmo - Self.ItemCount(7378), 0)*15
local totalmoneyneeded = (withdrawManas + withdrawHealths + withdrawAmmo)
local MATHCEIL = (math.ceil((totalmoneyneeded/1000)))*1000
Walker.Stop()
Self.SayToNpc({"hi", "deposit all", "yes"}, 65)
if (totalmoneyneeded > 0) then
Self.SayToNpc({"withdraw " .. MATHCEIL, "yes"}, 65)
end
wait(2000)
Walker.Start()
elseif (labelName == "deposit") then
Walker.Stop()
Self.ReachDepot()
Self.DepositItems({7438, 0}, {3073, 0}, {3037, 0}, {7401, 0}, {7425, 0}, {3082, 0})
Self.DepositItems({5922, 1},{5921, 1},{11473, 1},{11465, 1}, {3061, 1}, {237, 1}, {5878, 1}, {11472, 1}, {11464, 1}, {11482, 1}, {9635, 1}, {11451, 1}, {11483, 1})
if (LogoutStamina) and (Self.Stamina() < 960) then
Walker.Stop()
else
Walker.Start()
end
elseif (labelName == "potions") then
Walker.Stop()
if (Self.ItemCount(268) < MaxMana) or (Self.ItemCount(266) < MaxHealth) then
Self.SayToNpc({"hi", "flasks", "yes", "yes", "yes", "yes", "yes", "yes", "trade"}, 65)
wait(2000)
if (Self.ItemCount(268) < MaxMana) then
BuyItems(268, MaxMana)
wait(500)
end
if (Self.ItemCount(266) < MaxHealth) then
BuyItems(266, MaxHealth)
wait(500)
end
wait(200, 500)
end
Walker.Start()
elseif (labelName == "buyammo") then
Walker.Stop()
Self.SayToNpc({"hi", "trade"}, 65)
wait(1000)
if (Self.ItemCount(7378) < (MaxAmmo)) then
BuyItems(7378, MaxAmmo)
wait(500)
end
Walker.Start()
elseif (labelName == "resetbp") then
Walker.Stop()
Container.Close(GoldBP)
wait(1000)
Container.GetFirst():OpenChildren(GoldBP)
wait(1000)
Container.GetByName(GoldBP):Minimize()
if (HideEquipment) then
Client.HideEquipment()
wait(1000)
end
Walker.Start()
end
end
----------------------- Functions ----------------------
function SellItems(item) -- item = item ID
wait(300, 1700)
Self.ShopSellItem(item, Self.ShopGetItemSaleCount(item))
wait(900, 1200)
end
function BuyItems(item, count) -- item = item id, count = how many you want to buy up to
wait(900, 1200)
if (Self.ItemCount(item) < count) then
Self.ShopBuyItem(item, (count-Self.ItemCount(item)))
wait(200, 500)
end
end
Self.ReachDepot = function (tries)
local tries = tries or 3
Walker.Stop()
local DepotIDs = {3497, 3498, 3499, 3500}
local DepotPos = {}
for i = 1, #DepotIDs do
local dps = Map.GetUseItems(DepotIDs[i])
for j = 1, #dps do
table.insert(DepotPos, dps[j])
end
end
local function gotoDepot()
local pos = Self.Position()
print("Depots found: " .. tostring(#DepotPos))
for i = 1, #DepotPos do
location = DepotPos[i]
Self.UseItemFromGround(location.x, location.y, location.z)
wait(1000, 2000)
if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then
wait(5000, 6000)
if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then
Walker.Start()
return true
end
else
print("Something is blocking the path. Trying next depot.")
end
end
return false
end
repeat
reachedDP = gotoDepot()
if reachedDP then
return true
end
tries = tries - 1
sleep(100)
print("Attempt to reach depot was unsuccessfull. " .. tries .. " tries left.")
until tries <= 0
return false
end
Map.GetUseItems = function (id)
if type(id) == "string" then
id = Item.GetID(id)
end
local pos = Self.Position()
local store = {}
for x = -7, 7 do
for y = -5, 5 do
if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then
itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}
table.insert(store, itemPos)
end
end
end
return store
end
After buying everything, it comes out, closes the equipment part, and then jumps all the way back up to step one
@xiaospike @Joshwa534
As I continue to encounter your incredibly shit scripts, I've decided I'll take the opportunity to point out the flaws of this particular script. They are listed below. If you care to do something about them, that's your decision, but for the love of god stop distributing this shit.
Why do you insert a 5 second wait after starting the script? This raises a couple of issues, not least being that if in your first couple of waypoints you happen to have a label, it will be ignored. This poses a potential risk to the end user, and is a complete waste of a thread.Code:print([[
Yalahar Minotaurs or Elves by Xiaospike & Joshwa534]])
wait(5000)
Here's an interesting one... Why are you wasting time declaring a variable? Why not just do Walker.ConditionalGoto(Self.ItemCount(268) < MaxMana - 20~~~~~. If you really wanted to use a variable in this instance it would be far more convenient to use a variable to store the variability of the function (the number 20), that way you could allow the end user to set it to a value, so that if they will only use 2 or 3 manas at most on refilling (most likely) they will refill every time (even if they only deposited because of capacity...)Code:local ESTMana = (MaxMana-20)
Walker.ConditionalGoto((Self.ItemCount(268) < ESTMana) or (Self.ItemCount(266) < MaxHealth) or (Self.ItemCount(7378) < MaxAmmo), "resupply", "tohunt")
OK, so this is a large chunk to comment on. Firstly, it's ugly as hell. A much more organised way to do this would be to make a function and name it CalculateItemCost, pass in a variable for amount to buy, item ID, and cost per item, then perform these calculations and return the value. It looks shit, and is difficult to debug as a result. Secondly, why would you attempt to truncate a number in such a way? As you are simply rounding, you could use the function math.round. Sure, math.ceil will do the same job, but it once again makes code unreadable and difficult to debug. Last comment about this point, how many people wrote this code? I've noticed elsewhere as well, that your naming convention is to name it whatever the hell you want (e.g totalmoneyneeded all lower case, MATHCEIL very non-descriptive and all upper case, then the camel convention for withdrawHealths etc...) This is incredibly bad practise and anyone in the programming or scripting industry would mock you for it. It is laughable that you have actually managed to use 3 different conventions in 3 consecutive lines. Oh, I almost forgot, why exactly did you put so many brackets on the math.ceil line? Or wait, are you trying to make your code impossible to read? That does seem like the sole intention of this particular script.Code:local withdrawManas = math.max(MaxMana - Self.ItemCount(268), 0)*50
local withdrawHealths = math.max(MaxHealth - Self.ItemCount(266), 0)*45
local withdrawAmmo = math.max(MaxAmmo - Self.ItemCount(7378), 0)*15
local totalmoneyneeded = (withdrawManas + withdrawHealths + withdrawAmmo)
local MATHCEIL = (math.ceil((totalmoneyneeded/1000)))*1000
Why bother? I mean, seriously, what is the point? If you really wanted to make something here which would ensure the money was withdrawn, just add a balance check at the end of the withdrawing lines. The bot does not take 2 seconds to do what it is supposed to be doing here. Never has done, never will do. Exactly 2 seconds, as well? Hmmmm...Code:wait(2000)
It seems very unintuitive to assume that an end user wants to log out with 2 hours remaining. A round of most hunts for me is much less than an hour, another thing which would be beneficial to have as a variable. On top of that, here's your fourth naming convention. Well done. Include a fifth next time for a free gift voucher!Code:if (LogoutStamina) and (Self.Stamina() < 960) then
What the shit? So someone's just started up your script... It goes to the bank, withdraws 0 money, then goes to a mana shop... I know what it should do next! It should spam the word yes in an attempt to sell flasks which it doesn't have any of! Yes! Perfect way to get banned, fucking marvellous! You know what's even better than that? Every time I go to that shop, why not make it do the same thing? Ohh, you already did. On top of that, why not make a script which is obviously targeting players < level 50 try to sell 600 potion flasks! Great! Good job, well done. Learn to use a while true statement, and you can simple say yes until you have no flasks left. If you really want to be random about it, use some randomisation (say yes once for each stack of flasks, plus zero, one, two, or three times depending on the state of a randomly generated number). Don't do this shit, you're just making it fucking obvious who is botting.Code:Self.SayToNpc({"hi", "flasks", "yes", "yes", "yes", "yes", "yes", "yes", "trade"}, 65)
Again with these fucking waits? Seriously, why?! I know... Let's walk up to an NPC, and wait exactly 2 seconds. Next, we'll buy some mana potions and wait exactly half a second. Then, we'll buy some health potions and I tell you what, why not wait exactly another half a second. After that, maybe we can wait another 200-500 milliseconds, cause that will totally be amazingly fun! What the fuck?Code:wait(2000)
if (Self.ItemCount(268) < MaxMana) then
BuyItems(268, MaxMana)
wait(500)
end
if (Self.ItemCount(266) < MaxHealth) then
BuyItems(266, MaxHealth)
wait(500)
end
wait(200, 500)
Ok, so we're now saying trade to NPCs before trading? It's not "bad", as I guess that the function (not made by yourselves, of course, because it actually works as it should) to buy items will check that the trade window is open, but this is a waste of calculations. I see you had another great idea here, to say trade, wait exactly a second, then buy some potions, then wait exactly half a second and walk off. Inconspicuous.Code:elseif (labelName == "buyammo") then
Walker.Stop()
Self.SayToNpc({"hi", "trade"}, 65)
wait(1000)
if (Self.ItemCount(7378) < (MaxAmmo)) then
BuyItems(7378, MaxAmmo)
wait(500)
end
Walker.Start()
Should I even bitch about the sleeps here? Do I need to? What this is going to do:Code:elseif (labelName == "resetbp") then
Walker.Stop()
Container.Close(GoldBP)
wait(1000)
Container.GetFirst():OpenChildren(GoldBP)
wait(1000)
Container.GetByName(GoldBP):Minimize()
if (HideEquipment) then
Client.HideEquipment()
wait(1000)
end
Walker.Start()
end
Close the gold BP.
Wait exactly 1 second.
Open the gold BP.
Wait exactly 1 second.
Minimise the gold BP.
Hide the equipment.
Wait exactly 1 second.
Walk off.
You don't think this is becoming a pattern?
Ok, so let's move on to the functions you use:
Wait, buy, wait? Why not use a convention? Why waste time waiting before and (sometimes) after every function, when you could just be waiting before every function? I think I know the answer you're going to give (if any), and I suspect you will say something like "we did that incase someone else tries to copy this code, so they won't risk getting banned by doing shit too quickly", but then again there is a large part of me that suspects that you didn't even write this code, so meh.Code:function SellItems(item) -- item = item ID
wait(300, 1700)
Self.ShopSellItem(item, Self.ShopGetItemSaleCount(item))
wait(900, 1200)
end
This one is quite strange... Why would your first wait be outside of the if statement, and your second inside? It makes no sense. Then again, based on the code I've reviewed so far, it seems that your primary "company principle" is something like "If there is nothing else to do, wait." Good one. After reviewing this post, it's also just come to my attention that in fact you are waiting a bit, then this function is called, then it's waiting some more, then it's doing something, then waiting some more, then waiting some more again, then it's gonna do something else. Yeah, it's semi-random (primarily because this piece of code is not designed to have wait calls before and after it), but fuck me it's wasteful.Code:function BuyItems(item, count) -- item = item id, count = how many you want to buy up to
wait(900, 1200)
if (Self.ItemCount(item) < count) then
Self.ShopBuyItem(item, (count-Self.ItemCount(item)))
wait(200, 500)
end
end
I won't comment on the rest of the functions, as I do not believe you wrote them. Feel free to correct me if I'm wrong, but I doubt you have the capacity to write anything capable of doing anything productive.
@inadequate - For the reasons listed above, I won't debug this code for you. If you want it fixed, I'm sure JXScripts will happily do so. Personally, I don't have the time to even begin repairing this shoddy work. Sorry.
@inadequate - This line is most likely your problem:
Best way to debug it? Select that code, and paste this over it:Code:elseif (labelName == "checkstuff") then
local ESTMana = (MaxMana-20)
Walker.ConditionalGoto((Self.ItemCount(268) < ESTMana) or (Self.ItemCount(266) < MaxHealth) or (Self.ItemCount(7378) < MaxAmmo), "resupply", "tohunt")
When this line is processed, you will see a message in Tibia saying why it is refilling. After that you can see if one of the variables is configured incorrectly (most likely situation). If you're still stuck, post the result and I will see what I can do. As I said though, I'm not gonna be willing to look in any more depth through this code, it's not readable, user friendly, nor anything that I would personally trust to use on one of my accounts.Code:elseif (labelName == "checkstuff") then
local ESTMana = (MaxMana-20)
if (Self.ItemCount(268) < ESTMana) then
print("Refilling because of manas")
elseif (Self.ItemCount(266) < MaxHealth) then
print(Refilling because of healths)
elseif (Self.ItemCount(7378) < MaxAmmo) then
print("Refilling because of ammunition")
Walker.ConditionalGoto((Self.ItemCount(268) < ESTMana) or (Self.ItemCount(266) < MaxHealth) or (Self.ItemCount(7378) < MaxAmmo), "resupply", "tohunt")
All fixed, Joshwa534 helped me out with it, thank you for your time anyway guys
As to your answer to @inadequate, the issue was on the user.
Whatever your wall of text said, I'm not going to bother answering most of your questions. If you wish to scrutinize old code then go ahead but I'm not going to update old code with old code when we're currently revamping everything as a whole. If you still have issues then, go ahead and bitch about it but until then stop trying to get my attention and wipe that shit off your face @Avatar.
Let me know when you start selling scripts and learn how to deal with your customers. So far I don't see you posting a single piece of code here, for anyone.
You're welcome buddy, I won't promote @XtrmJosh's lame ass tutorial but there is one or two on Youtube.
It is to avoid having the first label ignored.
Afaik, there's no math.round function? You are probably thinking of math.floor, while math.floor rounds down in an old fashion, math.ceil rounds up.
What's the problem? If you'd like to hunt for only one hour, get back to your computer and logout.
And here's the random waits you wanted earlier when buying potions or ammo.
Holy crap, this turned into a war fast haha
What this turned into is some very delicately planned social engineering. See, what everyone thinks has just happened is that a scripting team has insulted fuck out of me for ripping their script apart. What's actually just happened is I've manipulated them into providing you with support. Enjoy your (now) functional script, and be careful where you get your scripts from. My post above does point out several flaws, some of which are potentially pattern generative (thus could get you banned if that is how CIPs detection system works).
Anyway, as I can't resist the opportunity to shit on and embarrass these retards, here goes:
@kopper - Took me 10 minutes or so to write that post, showed you up to be little more than a bunch of idiots. As a grown up I have morals, and expectations. It just so happens that you deliver something which does not meet my expectations. They aren't particularly high, either. Tell me to grow up, get out of the house or whatever all you want, it doesn't make a blind bit of difference. The fact is I am a better scripter than your team combined. Prove me wrong... Ohhh wait, you can't. Note that by "your team", I am excluding any external help you're getting from Spectrus at the minute, as I am aware that you are so incapable that he pities you.
On top of the above, yes, I have time to make this post. The reality is that in order to debug code, you need to understand code. In order to understand code, you must analyse it in such a way that the list of flaws I pointed out are obvious, all I did was made notes on them as I went along. It only took me a couple of minutes longer than it would have to analyse the code without having listed them, and in doing so I made you guys look like the bunch of incompetent fools that you are.
@Joshwa534 - I don't expect you to read my wall of text, because that's just how pathetic you are. I offer you an opportunity to learn and develop, and you take nothing more than offence from it. Admittedly, it is full of offence, but the offence is in criticism. I have not criticised without being constructive, therefore it is quite clear that I'm being more productive than at least yourself.
What the fuck are you talking about you haven't seen me post any code? I've posted probably the only useful video tutorials on the forum, with code samples, I even posted above in this thread with some code which would assist OP in debugging the script... I have posts everywhere offering to help people, you are clearly either simply trying to offend me in a very childish way, or blind to what I do.
@kopper - Yes, I've bought two of your scripts. Well done. I've bought two of your scripts, and neither of them have worked out of the box. Well done. Seriously, what relevance does that have? I give everyone at least one chance, and as you can see, given both of the chances I gave you, you have done little more than prove your own incompetence. On both occasions, I might point out, I have remade the scripts from scratch. If you want I can donate them to you, so you can distribute them, at least that way the shit you're trying to palm off at the minute won't be out there any longer.
@Joshwa534 - If you have a problem with my lame tutorial, make one yourself. I don't think you even know as much as I demonstrate in that video, and all that I demonstrate is how to adapt a Lua file to work for a spawn other than that for which it was made. If you'd prefer I can take it down, that way the community can't benefit from it and are forced to buy your scripts? Fancy that? Fancy being the dick who removes a perfectly valid resource from being publicly accessible?
No, I don't do sucking up. If you genuinely think I do, perhaps you should speak to those concerned. The first post quoted in reply #19 is me stating that the update would not have broken the script in this way, and that the people who responded saying that the script was shit (although they are correct, it is shit) were incorrect about the cause of this particular issue. If anything this post should demonstrate that I am unbiased, and it is actually an example of myself defending you and your ridiculous excuse for a scripting team.
You couldn't afford me.
@Adky - The first label should not be ignored if there is no sleep, it makes no sense that this should be necessary. Upon googling I did find a math.round function, but it does appear to be user added. This code still could do with being more readable, and if you disagree with that at least consider the rest of the points made about that chunk of code.
The point is that there is a potential improvement which would've taken an extra second to implement, and it was not incorporated for a reason which I fail to see.
The random waits in this function are fine, but let's look again at the waits which were added earlier, why were they even added? It makes no sense for them to be there.
@xiaospike - Very clever, you know how to use a meme generator, well done. Fancy trying to hold a conversation next time? Or can your simple brain not support such intellectual things?
@XtrmJosh
People probably insulted you or disliked you because of your shitty attitude towards people. I've seen it going on in several threads lately and it's dissapointing to me atleast.
Please, don't start any drama over this post, it's just critisicm. (Sorry for my spelling aswell, may be issues here and there).
Have a great day.
You're a fucking idiot, it was a user-error as I already stated. Ask @inadequate as he using brocade backpacks for both his main backpack and his gold backpacks, thus when triggered by the backpack reset it closed his main backpack. I solved the issue as I always do, showed the user how to use software they aren't used to using and provided a detailed explanation about how to operate our scripts. If your tutorial(s) and video(s) were so great, they why aren't more people actually using them instead of asking me how to use Xenobot? It doesn't matter how much you think you're trying to help someone, if you're an asshole about it, just as you are every time that mouth of yours is opened, then nobody gives a shit about what you're saying. Although you know little to nothing about the "industry", you claim, as always since you are the the god of lua code and walking encyclopedia containing all factual information about the universe, that the "industry" would mock me when instead it is a fact that nobody, in the real world, will hire somebody with as much shit on their face as your avatar picture.
This statement is almost worth looking over, as you, the god of lua code and walking encyclopedia containing all factual information about the universe, actually used the same code we use in our scripts to demonstrate how to make a '100% AFK Script' in this post.
XtrmJosh's Code:
Hey wait, that's funny, I wonder where you got your local variables from. :D OH EM GEE!! You told me to use math.round yet you've failed to do so yourself, you took the same 'ugly' bit of code, as you claimed it was, and used it in your tutorial. You've changed my 'totalmoneyneeded' to 'total', you're using my local variables, doing the exact same for each of them with the exact same code. Yet you come to the conclusion of your evaluation of our old bank code by saying the following:Code:elseif (labelName == "DepositGold") then
-- Deposit Gold, check balance.
Walker.Stop()
Self.SayToNpc({"hi", "deposit all", "yes"}, 100)
local withdrawManas = math.max(BuyMana - Self.ItemCount(ManaID), 0)*ManaCost
local withdrawHealths = math.max(BuyHealth - Self.ItemCount(HealthID), 0)*HealthCost
local withdrawAmmo = math.max(BuyAmmo - Self.ItemCount(AmmoID), 0)*AmmoCost
local total = math.abs(withdrawManas + withdrawHealths + withdrawAmmo)
if total >= 1 then
Self.SayToNpc({"withdraw " .. total, "yes", "balance"}, 100)
end
Walker.Start()
Just as you add it to your bit of code in your tutorials clearly going against your evaluation, and overall protest, of our code. So to conclude this statement, you're a fucking idiot - Just as I said in the first sentence of this post.Quote:
Originally Posted by XtrmJosh
http://www.youtube.com/watch?v=NyEE0qpfeig
@XtrmJosh
http://i.qkme.me/3plu4l.jpg
By the way...
http://forums.xenobot.net/showthread...l=1#post187435
"You call people out for doing the exact shit you do, lmao."
@xiaospike - So why bother then?
@Swaghetti - These people don't dislike me for anything other than the fact that I dislike them and make it completely obvious. They are attempting to run a "business" on the concept of mass manufacturing absolute tripe. It isn't worth anyones money, and isn't deserving of the credit which they get for it.
@Avani - Yeah, why not? As I already explained, the first step in debugging code is understanding it. If I don't understand the code, I can't debug it. I attempted to debug it, realised I would get nowhere since I would have to both read, review, adapt, and update it to be something which somebody can understand. So, yeah I went off topic, but ask yourself this, did I or did I not get the result I was aiming for?
@Joshwa534 - As already explained, the intention of my post was to draw the attention of your "team" and acquire some support for this guy. If anything, you should be grateful for the fact that I have encouraged you to do so, as now that he's been supported by you he's potentially more likely to buy from you in the future. Could you define at what point exactly I declared myself the God of Lua code? I don't seem to recall that too clearly, so do remind me.
The code sample you've copied from my project was hand written by myself. For non-user friendly variables I like to use the camel hump convention, with the lower first and upper second word. For user friendly variables I like to use the camel hump convention with the upper first and upper second word. This seperates the two nicely. You can also probably tell that it's not an exact copy of your code because I didn't use double brackets nor math.ceil in my code. I mean, had I used those two things, I would've been inclined to agree with you (purely from a spectator view), but due to the commonality of the variable names, you have no grounds to argue that this is a copy of your code. To respond to the point that the code is ugly, yeah, it is, but my code is not aimed at some professional, trying to debug, it is aimed at beginners looking to make their own scripts. It provides a more obvious flow, in spite of some less obvious wording. Your scripts, however, are advertised at people who buy scripts with the intention of configuring variables and starting them. In my instance, workflow is more important than ease of reading. If you like I could even go back to my scripts from when I wrote them for BugWT, and once again you will see that I use the camel hump convention in exactly the same manner. Note that the comment about bad practise was targeting the idea of using 3 different naming conventions on 3 different lines. Yes, that is laughable. The idea of using math.max, as I stated, was not the worst one, but it did make the code ugly (excused on my part for readability). Do you have downs syndrome?
@xiaospike - I had a debate with DarkstaR about that post, and his reasoning was that he was under the impression that I was trying to wind up a guy new to another forum which I suspect you are unaware of. Quoting posts you know nothing about is both pointless, and makes you look like even more of a retard. The discussion DarkstaR was posting in on that particular thread was my crusade to stop people from posting the words "use the search function" where they are neither applicable nor helpful. The discussion which he was referring to when he posted that particular line was one about the way I greeted a user who was offering to pay people to add bot detection software into his OT. I suggested to him that he wouldn't be able to afford it, and he continued to persist in saying he would pay for it. I gave him an idea of "the going rate" for programming contracting, and after I crammed it into his ears long enough, he finally settled down and accepted that he couldn't pay for it, so I started pointing him in the direction of tutorials, the Visual Studio IDE, and some other useful stuff. At that point he began insulting some friends and developers who I have a great deal of respect for, at which point I told him where to shove it.
To anyone who wants to persist with the idea that my code is a poor example, that's kinda irrelevant too. Since my code is there purely as an example, offered free. Your code, however, is the same as you use in all your scripts (except for those for which Spectrus has allowed you to use his new dynamic town system). That includes sold and free scripts, so yeah, you're trying to sell your shit, I'm simply trying to share mine for free, with a bit of education.
@XtrmJosh
My first impression of you is that you're trying to be better and more intelligent than anyone else in these forums, that kind of personality ain't appreciated and I dislike you for this.
Dislike me all you want, I'm not here to impress you nor anyone else. The entire purpose of this argument is that I don't appreciate the way that JXScripts are currently portraying the scripting community. If it was just free scripts which were given out, I wouldn't object so much, but I've bought 2 scripts from them, and neither of those two scripts worked as advertised, nor were they of any real use to me. The end result of me buying those two scripts was that I remade them using my own code and waypoints... The only thing I really gained from it was the knowledge that their scripts are not worthy of being sold. The real complaint, above all else, however, is that the second script I bought for them didn't even leave town. It ran around town between all the refilling points (bank, manas, spears, depot). It's the sheer balls that it takes to publish a script without even the most basic of testing... That's what really bugs me.
What's your problem, dude? How can you call me an idiot if you don't even know me? I actually tried to help him... but whatever.. you're just an ignorant kid trying to be that 'good guy' on the forum that helps everyone for free and create tutorials to help people create scripts... and then you call them idiots for creating unsafe, badly written scripts. Just pathetic.
What have I done that's useful? I've made a video tutorial guiding people on how to make AFK scripts. I've made several tutorials for another forum for C# programming with Tibia, though it's not particularly important here, it shows what I am actually here to do. My intention is not solely to piss people off, my intention is to open the floor for people to improve and learn...
Firstly, it was you who threw the first insult by calling JXScripts out (without realising) on their badly written scripts. Secondly, in what way are you coming to the conclusion that my tutorial is how JXScripts learned to script? If it were from one of my tutorials, how did they get their hands on my tutorial before I even recorded it? I don't particularly care that they are creating bad scripts, the thing I care about is that they are trying to sell them. The only reason they have succeeded is through a lack of competition. Personally, I don't have the time (as I've said numerous times before) to compete. It did appeal to me once, I thought about it, and I even had graphics made up and began making a website, but I couldn't find the time to finish the website, let alone to make enough scripts to develop any realistically sized database. Based on your first response here, my only knowledge of you was that you immediately assumed that his script was badly written, in spite of the fact that the circumstances surrounding the failure pointed to a different issue entirely. So, yes, for that particular reason, you did appear to me to be an idiot. For the fact that you are now trying to reproduce an argument which is already being had here, well, you're not helping yourself.
And still you manage to piss people off. Do you ever take one step back and actually think about your actions and how you talk to people? It's a good starting advice.
Now get me someone that fins ur tutorials useful. Anyone who wants to learn, knows where to find knowledge on this forum. Ure just a bit older kiddo with slightly bigger vocabulary of english than average aged user on this forum, trying to boost ur own selfconfidence online. If u were of any use u'd contribute to our community rather then flaming and talking non-sence. Cure ur complexes somewhere else plax.
@XtrmJosh
I'll just answer your first question since I can't be arsed reading such a long posts from you. So first of all.. I didn't say JX's scripts are badly written or anything. If I knew it was their scripts my first guess on his problem would be something else than badly written scripts, he just didn't give enough details that could help me understand his problem :) And no, I am pretty sure he/they didn't learn to create scripts from your tutorials but in some time there might be some people that will create threads because of your guide so will you call them idiots or whatever as well?
I am out of discussion, bye.
Oh and btw. even if they sell "bad scripts" as you said.. isn't it better than nothing? Let people who buy them decide if it was worth buying their scripts or not.
Your attempt to get us to help inadequte is kinda late... we had already fixed his issue before any of us had even see this. Your "experiment" is just a cover story for your envy of us. You bought a script that needed to be updated because none of us had ran it since updating it, big deal get over it. Yes our code is not perfect, but really, whos on this forum is? Syntax? Spectrus? Darkstar? that's pretty much it, and I'm sure there's things they could do better. Your "criticism" is nothing more than useless garbage that you spew from your mouth. When I told you to grow up and go outside, it was so that you could be a better person. Apparently that is too much to ask from you though. You will continue to be an un-important person in life with mental issues and that's fine with me but was hoping for once in your life you would listen to the advice of another so you can better your life. This code is months and months old. Hell it's before I even joined up with JX scripts. This code will not get you banned, I've ran it on several accounts none of which have been banned.
Every post I write has been carefully crafted, nothing I say isn't though about. I don't intentionally post here to piss people off, but I'm not gonna fuck around trying desperately not to piss people off. If I think someone needs a lesson hammered into them, I will do my best to be the person hammering it in.
12 People posted on the thread saying things which generally resemble the term "thank you", and show appreciation for the video. I'm sure that at least one of the people who posted in that thread found it useful. You're more than welcome to try argue that one, but I don't think you're gonna get anywhere. The fact is there is nowhere to find knowledge on this forum. People could try to download a script, but they'd inevitably find a script from before the update in which libraries such as Forgee & Sirmate were made redundant. The fact is, this place has very little in the way of good quality resources. I have no need to boost my self confidence, as I am not confident in anything other than guiding people. I won't pretend to be an expert in Lua, nor in any of the other languages in which I can code. I have never done so, all of the videos which I make (including those which use C#, as on my YouTube channel) are written primarily based on research over experience. If someone asks me today "can you make a tutorial for how to read memory using C++?" I will first spend a few hours researching it, then convert it into a set of chunks which I can examine and talk through as I work on. At that point the video takes structure, and that is where all my "knowledge" comes from. I don't know any of the shit I talk about really, and even in assembling this argument I had to do some searching to find Lua functionality. If people would stop releasing such junk I wouldn't feel obliged to spend my time arguing, and I may well do something productive. Though I will point out that the last time I said to some people who were arguing in chat box "Stop arguing and do something productive" I was mocked and somebody tried to start an argument with me. I can't imagine that every second you're at your PC you are being productive, so I should imagine you have no such high expectations for me. I am not always in the mood to write code, nor to make tutorials, so I will not constantly be making them. I will, however, contribute when and where I feel appropriate, and once I have done the research I require.
Yes, you did.
[QUOTE:Nakuu]I tested today my scripts today and everything works fine so seems like it's badly wrote script after all.[/QUOTE]
Are you trying to tell me you didn't post that? The implication is crystal clear, so don't try to deny it.
Within 20 minutes of inadequate posting his response (#11), I posted my script analysis. 10 minutes after I posted my analysis, tagging all of your team, the problem was fixed. Now, call my sceptical, but I smell a fuckton of bullshit. On top of that, what the hell would I have to envy of you? You're the bottom of the fucking bottom, you sell pile after pile of steaming fresh shit, and what for? A pittance. I bought a script which was not functional, why would you sell a script which isn't functional? Your code is far from perfect, it's not even consistent. There is a saying amongst the software testing industry, and it goes something like "It's ok to be wrong, provided you are consistently wrong." It's quite acceptable to do something wrong, as long as you are consistent, because when you are consistent it is easy to trace and fix these issues.
If you're gonna comment on DarkstaRs code not being correct, ask yourself this, before releasing the bot, do you think he tested it? Before releasing each update, do you think he tests it? After Tibia updates, do you think he sits there, accepts the new proxy, and waits for complaints to come rolling in before updating the memory addresses? Absolutely not. So why would you even imply that your lack of testing compares remotely to anything that he does? It just isn't comparable.
You're telling me that my life is not good? You clearly have no idea who I am, what I do, or of any aspect of my personal life. I live my life as I want to, and if that includes arguing with people like yourself, that's my decision. I spend 11 hours a day working, 3 hours or so a day on my computer on forums like this, maybe another couple of hours programming, and on the weekends I spend the most part out on my motorcycle. That's when I'm not decorating the rooms of my house, going for a drive to the seaside, holidaying in Majorca, dining at restaurants with my girlfriend of 6 years, or doing any of my other hobbies. As I said, you know nothing of my life, so don't try to judge it. Also, what are these mental issues of which you speak? Not quite following how you came to make a psychoanalysis of me based on an argument on the forum. Stop trying to insult me, and try to maintain a decent level of debate. Continuing to insult me will result in little more than your service being disrupted further by insults coming straight back at you in your own scripting thread. This forum isn't here for you to insult people, it is a place where freedom of speech is accepted, yes, but throwing pointless insults is just like sticking two fingers up at DarkstaR.
Are you now guaranteeing me that your code will not get me banned? Or am I misinterpreting your words? That's what it sounds like to me. You don't know how the detection system works, so you can't say anything of sorts. All we really know about the detection system is that it probably does work based on data farming. Data farming is a method of bot detection which works based on the concept that bots generate patterns. Running scripts like the one listed here will result in patterns being generated. The only explanation for why it hasn't caused bans so far is that the bot itself has some good randomisation features.