Jump to content

ScripterQQ

Members
  • Posts

    484
  • Joined

  • Last visited

Posts posted by ScripterQQ

  1. Sorry for bump, but recently a HUGE banwave about scripters happened. (W4rmane Server, specifically Icecr0wn)

    I can't change my ip and try with a trash account right now, can someone tell me if this version is now detected too?

     

    Thanks!

  2. I recently started to make rotations again, and needless to say I'm very rusty.

    I still remember some good tricks, but I fail at basic stuff.

    Basically I am using the "rotation we all know", It's divided in different pages on the left (Abilities), and I remember I managed to add a line to stop the rotation (like when im drinking, or having a particular debuff and so on).

    Example:

    Ability 1:

    if UnitBuff("player","Drink")
    then
    --code to stop rotation and go back to top of the page, kinda like a while 1=1
    end

     

    Ability 2

    print("Hello World")

     

     

    The idea was not reading the second page/ability because the rotation was stuck in the Ability 1 loop. I can't recall exactly how I managed to do that but I clearly remember it was very basic.

    The best example is Sindragosa ICC, I registered all 4 different scenarios (10, 10HC, 25, 25HC) and set a "stop healing" command based on the Instability Debuff stacks (lets say >=5 for 10, >=2 for 10HC, >=5 for 25, >=1 or 2 for 25HC)

    The fact is can't really remember how did I do that, for sure it wasn't a while 1=1, because that stuff immediately starts not responding and forces me to ALT+F4.

    There is the "return" command, it returns correctly to the top of the page of the ability without executing the code below, but it keeps doing the other abilities that come after in the rotation, the other pages to make it simple. So yeah I really don't remember how did I do that, and I lost all rotations (thats why Im writing them again)

     

    Any help, tip?



     

  3. I was thinking, instead of writing something like

    if UnitBuff("player","Seal of Light")
    or UnitBuff("player","Seal of Wisdom")

    and so on..

    Is it possible to do something like

    if UnitBuff("player","Seal of"*) ?

    I did some google search and the "." is used to match any character (like when comparing some strings), but I don't see it working with string concatenation

    For example, in my case I should write something like

    if UnitBuff("player","Seal of"...)

    because ".." separates text from variables, and "." should be the "any character", but clearly this isn't the right way to do what I want to do.

    Any idea? Thanks!

  4. @MateniaYeah the fact is I had that API page in my bookmarks since years and I always used it, I never thought it was so outdated since I never encountered any problems, again I apologize... kind feel stupid relying on a TBC page while experts here are telling me some LUA basics... /facepalm

     

  5. UPDATE: I just tried the command and I am still confused because

    1) It actually shows the duration 10/5/2.5, not always 10 as I was insisting, so I messed up there somehow

    2) That being said, I was expecting to not get any duration result if the debuff was NOT casted by me, so I logged a 3rd char and used the command to see the duration of the poly casted from my mage towards my paladin, and well, it was still saying the duration, despite the debuff being NOT applied by me (I was on Priest, and not even in a group with them)

    So first of all I apologize for the confusion, second, the LUA API is not updated, or the server I am playihng is bugging, or again, I miss some brain cells lol.

    anyway for those who wants to try it this is the command I used

    /run local _, _, _, _, _, duration, expires = UnitDebuff("target","Polymorph") print("Duration: "..duration.." Expires: "..expires-GetTime())

     

    I will do further tests, im not sure if it will give the duration if the poly is casted by arena1/2/3

     

    EDIT: Tried in duel zone, apparently it works, need to test it in Arena, but its very weird, I mean the API clearly says it should return "nil" if not casted by me, so idk..Maybe I miss something..Sorry again for the confusion (and not my intention to sound arrogant or c*cky I was just trying to understand)

     

    This is the full test script:

    --test
    if UnitDebuff("player","Polymorph")
    then
    	local _, _, _, _, _, duration, expires = UnitDebuff("player","Polymorph")
    	if expires-GetTime() <= duration - 2
    	then
    		print("2 seconds has passed since the debuff")
    	end
    end

     

  6. Duration is always a fixed number (dont recall if 10 seconds for pvp, or 2min for pve), it doesnt change based on DR

     

     
    Quote

     

    duration 
    Number - The full duration of the debuff in seconds; nil if the debuff was not cast by the player.

     

    Thats the first thing I tested and I clearly remembered that it was always showing the "ideal duration", despite the debuff being full, dr, or even immune. Thats why its written "full duration"

    But even in the case I am completely wrong and I have a bad memory (I dont have time now to test the command again), it clearly says "nil if the debuff was NOT cast by the player", means that if arena1/2/3 cast Polymoprh, "duration" will always return nil. So again, the only information I can gather from that is the expiration time. Other stuff must be grabbed from the combat log.

     

     

    EDIT: Strikethrough because it was not correct, see posts below.

     

     

  7. On 11/26/2020 at 9:04 AM, Matenia said:

    I literally gave you the full solution. You have the time left, you have the full duration. From that you can do the math to get the the starting time in GetTime() value. 

    Wait sorry Im doing confusion again.

    The LUA Api of UnitDebuff doesn't provide itself when the debuff has been applied, it only gives duration "10" which is the static default duration of the debuff (Polymorph, no matter if Full or DR), and expiration, which (combined to GetTime()) gives the remaining seconds when the debuff has been applied.

    So basically I have a static 10 seconds that tells me that the Poly is supposed to last max 10 seconds. This duration doesnt tell me where or when or how, its just a static number, kinda like a SpellID. This 10 will NEVER change.

    And then a value that changes which is the expiration, it can be 10 if full, 5 if first DR and so on.

    I dont see any connection with the starting time, the UnitDebuff just tells me "The poly should last 10 seconds. but in this moment, it lasts 5 seconds", or "The poly should last 10 seconds. but in this moment, it lasts 2.5 seconds". As already said, the 10 doesnt change, only the "expiration" changes.

    Again, unless I track the combat log and grab the start duration from there, the time where the target actually got the debuff,  I cant understand your last message. Maybe time to go to school or something...

     

    EDIT: Strikethrough because it was not correct, see posts below.

     

     

     

  8. I dont get this code. Where is supposed to be located the starting duration of the debuff applied by arena1/2/3 (example: Polymorph)

    As far as I know, the only way is listening to combat log events and grab the start duration from there. And then eventually do the maths.

     

    EDIT: Strikethrough because it was not correct, see posts below.

  9. I just figured out why it doesnt work my way:

    doing if expiration < 8 a normal poly would be dispelled with a 2 seconds delay

    doing if expiration <= expiration - GetTime() - 2 won't work, because its like writing

    if 5 <= 3 so thats why it doesnt dispel...Simple maths..

    Sometimes I trip over banal things and I think this is one of them.

     

    You are correct the only way is getting the start duration and substract the expiration! Later I do some tests

  10. Yes it changes, but why do you think it matters exactly?

    Look:

    if X = X - 2

    I don't care if X (expiration - GetTime()) changes, because the offset (-2) doesnt change

    if 10 = 10-2 the result witll be 8

    if 25 = 25-2 the result witll be 23

    This is what I had in my head.

     

    I had to read the combat log to get the time applied, there is no other way as far as I know, not with LUA at least.

     

    EDIT: Strikethrough because it was not correct, see posts below.

  11. @Matenia No lua error, the condition is never met.

    GetTime() changes, that's why instead of putting a number like

    if expiration - GetTime() <= 6 

    I want a number that can change so

    if expiration - GetTime() <= expiration - GetTime() - 2

    Should do the trick?

     

    As already said, I don't think I'm mixing apples with bananas, in fact if I just ignore the rotation, and apply a debuff on myself, and then print a

    expiration - GetTime() - 2

    I get the exact second remaining of that Debuff, but with -2 offset:

    expiration - GetTime() would print out 9.9, but since I added a -2, it prints out 7.9 correctly

     

    So the syntax is correct, but the rotation program somehow doesn't recognize the if statement if put like that.

    I can compare expiration - GetTime() only to a number of seconds, not to "itself modified"

    I already tried to set a variable like

    local duration = expiration - GetTime()

    and then

    if expiration - GetTime() <= duration -2

    still doesn't work, I can't understand.

    I know for sure that expiration - GetTime() will give out a number, so why adding or removing a certain amount of seconds won't make trigger the if statement, but siomehow the print function works?

    I will check about the start time, but Im afraid I need to use a Frame and register combat log events? That would be annoying.

    @TheSmokie No the program is fine and I run it at 1000ms delay, no spells are skipped the rotation is flawless I just wanted to make it more human and less bottish ?

     

  12. Hello, it's been a while since I don't post here. But I'm kinda back, so I'm working again on some profiles.

    One is at a good point, but the rotation program (you know the name I dont need to write it so it appears on google and stuff), is too fast, even if I put max delay, I want to set my "reaction" in a more human way and less suspicious.

    So let's assume someone in Arena/BG gets a Polymorph, I can dispel it, but that can be istant if I'm not on GCD, or max 1sec delay. Either way it raises some suspects if someone keeps watching me.

    So I was thinking about dispel only after X seconds of the debuff

    and there is LUA:

    local _,_,_,_,_,_,expiration = UnitDebuff("target","Polymorph")

    First 6 arguments are -useless- so I'll use the 7th (expiration) becasue I need that one specifically.

    By using a simple

    /run local _,_,_,_,_,_,expiration = UnitDebuff("target","Polymorph"); print(expiration-GetTime())

    you get in your chat the exact amount of seconds remaining before the debuff disappears.

    So my first attempt to automatize the dispel was just
     

    if expiration - GetTime() <= 8
    
    then
    
    CastSpellByName("Dispel Magic-Cleanse-Whatever","target")
    
    end

    and after 2 seconds of 10 seconds Polymorph it correctly dispels the target, simulating a human delay.

     

    But what if the Poly is in DR? The duration is now 5 seconds not 10, so the script will trigger istantly because 5 is <= 8, thus it doesn't wait those 2 seconds.

    Ok, easy I thought:
     

    if expiration - GetTime() < expiration - GetTime() - 2
    
    then
    
    CastSpellByName("Dispel Magic-Cleanse-Whatever","target")
    
    end

    In this way, the Polymorph in DR lasting 5 seconds should be dispelled at 3, exactly after 2 seconds.

    Guess what? It doesn't work.

     

    But if I do a

    print(expiration-GetTime()-2)

    or any other number, the seconds are correctly delayed so it's not a syntax problem, expiration is a number, GetTime is a number and 2 is a number. Im not mixing banans with apples.

    Why when using the " if " statement I can't substract seconds and the script doesn't work, but the print command can add and substract numbers to GetTime()?

     

    What am I missing? Greetings, have a nice day!

  13. (I don't remember if I opened already a similar topic, in that case please delete this one, thanks and sorry)

     

    So I'm kinda bored and I want to finish some Wotlk pqr rotations that I've created before the banwave and the new sentinel anti-cheat on w4rmane. I saw in arena some suspicious kicks/pummels at high ratings but I can't say 100% if they were script or not, so I thought that maybe players got a new pqr version that isnt't detected.

    I don't care about pvp scripts, also because they are useless since the combat log is delayed, they are good only for kicks which I don't have since I play healer. But I want the pqr anyway, is someone able to give me a modified version that doesn't make me instant banned? I can pay, I don't spread it to other people/sell it, so it would be only for me. There is no way it can go popular. Send me a message if you have any tip! Thanks greetings!

  14. Hello, I want to implement in my addon an announce that writes in party when I get interrupted in the Holy school, so I created a frame, registered event "COMBAT_LOG_EVENT_UNFILTERED" and checked for the "SPELL_INTERRUPT" firing. Works good, nothing to complain.

    Problem is Penance, not only is a channeled spell, but also it belongs to "Discipline" school, which doesn't exists in the wow school database (only Holy/Nature/Shadow, etc) but I think this is not a real problem. The main problem is with Penance (didn't test with other channeled spell but I believe it's the same), in the /eventtrace, I don't see the "SPELL_INTERRUPT" firing, when kicked.

    I see only something like "SPELL_FAILED" but that fires even if you stop the spell manually (for example 1 tick penance fake cast).

    So how can I keep trace of the Penance (and other channeled spells) being interrupted?
    I found only this and of course it has no replies or solutions: https://eu.battle.net/forums/en/wow/topic/1622868793

    Thanks for reading

  15. My profiles are/were good. Though, I got banned after 2min in battleground some months ago, using my Paladin rotation (public) and my Arathi Basin rotation (public).

    So I would suggest you to create your own profile and fight class because there is a high chance that all my public stuff is detected by the warden.

  16. There are false positives I even opened a thread on forum and GM/Moderator confirmed this, after I got banned twice and then unbanned immediately while I was using only the Auction House and the panel to mass craft Glyphs. They say it might be the warden or a GM "miss-clicking" ban.

    So yeah, automatic auctions, even allowed by Blizzard such as "Create  All" on profession panel, may trigger a false positive. I don't know exactly in detail how it works but well I got banned twice and unbanned immediately, and accounts are still "in good standing" so they fuck up sometimes.

    Also I forgot regarding bans with wrobot, if they found a way to detect it 100%, for sure it's only a flag, and when let's say the situation is out of control, they mass ban everyone. If they ban one single bot every week, the developers of wrobot have time to figure out new mechanism to stay safe. By mass banning in waves and faking they "don't know where to look at" or faking GM inspecting you may be a tactic to cover the fact they already spotted wrobot 100% and they are only waiting for mass "idiots" to caught, and also to improve their warden by keep tracking wrobot updates.

  17. The fact alone a guy has been banned IN ISTANCE means it's detected, or flagged and then banned, but definitely not a safe product.

    I believe it has been flagged then the gm "reads" the log and somehow see the injection in the game, and procede with ban.

    They can't ban you instant like PQR because there might be a false positive, thats why it needs some time to get you banned, they need to check with their eyes the log and the injections made on the game.

    As already said, I myself abused for 2 years+ straight Battlegrounder (got more than 100k HKs on different char, 24/7 spamming BGs) and not a single report on 6 character (I got good fight classes and profiles), then some weeks ago i botted for 1-2 hours radomly and got banned. A guy got banned for using WRotation, another guy for using it in Instance..too many signs that something is not right. Every person with at least 2 brain cells would understand this concept, everyone saying the opposite and defending wrobot has serious problems sorry.

×
×
  • Create New...