-
Member
Looking for a decent 3.3.5 Feral druid script if anyone has one
-
PQR Complete Collection
Have u tried this one?
-
Member
yes I did but the link is down
**Sorry I didnt see the new link uploaded I got it**
Last edited by Axeeon; 07-13-2017 at 02:50 PM.
Reason: I am stupid
-
Member
Ask me anything I have all scripts, for free
-
Member
Originally Posted by
Axeeon
Looking for a decent 3.3.5 Feral druid script if anyone has one
I think this will fit you: FeralPVP
-
Member
Here a folder with many scripts: AQUUA_PQR
-
Member
Originally Posted by
Tosterrorer
LF all working 3.3.5a Warlock pve/pvp profiles
Have only my own Destro (low gs profile) can share if u want
This is PvP Warlock profile is for you: 3.3.5Warlock_Tetra
-
Post Thanks / Like - 1 Thanks
Angelism (1 members gave Thanks to Ravenh for this useful post)
-
Member
Originally Posted by
AtomX
Anyone have any guides on how to find offsets and how to add a "custom" class to PQR? I'm on a classless server that let's you chose any spells and tallents, I think I can figure out a simple script for it if I could get it to attach and read as a "Hero" Class.
To find offsets in Mac for example, do this:
1) You will need the OSX developer tools installed so that the WoW app can be decompiled.
2)Create a GetWowPatchAddress.sh script/text file (or you can name it whatever else) with the code listed at the bottom of this post. You may have to give the file execute permissions with chmod +x
3) Start up Terminal and drag the script then the World of Warcraft.app into the window. (Dragging and dropping will prevent typos with all the escaped spaces.)
4) Hit Enter and let Terminal process the two. It usually takes about 30-45 seconds and will drop about six WoW* files in the User directory. These can be deleted later or just left since they will get overwritten each time you go through this process.
5) When the script finishes, there will be a line like "0000000100a19a9a 7777 ja 0x100a19b13". The first section is the memory address that has the jump that needs to be changed. Trim off the leading zeros with the 0x notation. The resulting 0x100a19a9a is the new LUAOFFSET value to update in.
6) Leave the 0x77 and 0xeb values alone since those reference the types of jumps.
CODE:
#!/bin/bash
# Find the patch address for WoW. This is the address of the first ja instruction in the
# CanPerformFunction procedure which is called by many other Lua functions.
LANG=C
wowapp=$1
wowbin="$(find -f "${wowapp}/Contents/MacOS" \( -type f -not -name ".*" \) | sed -n -e "1 p;q")"
if [ ! -f "$wowbin" ]; then
Echo "# Error: "$wowbin" does not exist."
exit 1
fi
# Check for universal binary
lipo -detailed_info "${wowbin}" > /tmp/wowdetailedinfo.lipo
fileoffset=$(sed -n -E "/architecture i386/,/align/ { /i386/,/offset/ { /[ ]*offset[ ]+(.*)/{s//\1/p;q;}; }; }" /tmp/wowdetailedinfo.lipo)
if [ -z $fileoffset ]; then
fileoffset=0
fi
echo "# Getting segmments and sections from "${wowbin}"..."
otool -l "${wowbin}" > /tmp/wowheader.otool
is64=0
grep -q LC_SEGMENT_64 /tmp/wowheader.otool && is64=1
if [ $is64 -eq 1 ]; then
name=wow64
else
name=wow32
fi
cat /tmp/wowheader.otool > ${name}header.otool
cat /tmp/wowdetailedinfo.lipo > ${name}detailedinfo.lipo
echo "# Disassembling..."
otool -tvqj "${wowbin}" > ${name}.otool
sectionlist=$(
sed -n -E '
/^Section$/,/^ reserved2/{
/^ sectname/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;h;}
/^ segname/,/^ offset/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;H;}
/^ align/{g;y/\n/,/;p;}
}' ${name}header.otool
)
segmentlist=$(
sed -n -E '
/^ cmd LC_SEGMENT/,/^ flags/{
/^ segname/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;h;}
/^ vmaddr/,/^ filesize/ {s/^[ ]*[a-z0-9]+ (.+)$/\1/;H;}
/^ maxprot/{g;y/\n/,/;p;}
}' ${name}header.otool
)
ExtractSection () { # $1:segment name $2:section name $3:filename $4:type
thesection=$(echo "$sectionlist" | sed -n -E "/^$2,$1,(.*)/{s//\1/p;q;}")
theaddr=$(expr "$thesection" : '\([0-9a-fx]*\)')
thesize=$(expr "$thesection" : '[0-9a-fx]*,\([0-9a-fx]*\)')
offset=$(expr "$thesection" : '[0-9a-fx]*,[0-9a-fx]*,\([0-9]*\)')
offset=$(($offset + $fileoffset))
if [ "$4" == "1" ]; then # convert nulls to newlines (useful for cstring section)
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | tr '\0' '\n' > "$3"
elif [ "$4" == "2" ]; then # output as list of hexadecimal integers
if [ $is64 -eq 1 ]; then
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | xxd -g 8 -c 8 -p | sed -E "/(..)(..)(..)(..)(..)(..)(..)(..)/s//\8\7\6\5\4\3\2\1/" > "$3"
else
dd if="${wowbin}" bs=1 skip=$offset count=$thesize 2> /dev/null | xxd -g 4 -c 4 -p | sed -E "/(..)(..)(..)(..)/s//\4\3\2\1/" > "$3"
fi
else # output as raw binary
dd if="${wowbin}" of="$3" bs=1 skip=$offset count=$thesize 2> /dev/null
fi
echo $theaddr
}
echo "# Extracting section __TEXT __cstring..."
addrTEXTcstring=$(ExtractSection '__TEXT' '__cstring' ${name}cstring.txt 1)
echo "# Extracting section __DATA __const..."
addrDATAconst=$(ExtractSection '__DATA' '__const' ${name}dataconst.txt 2)
echo "# Extracting section __DATA __data..."
addrDATAdata=$(ExtractSection '__DATA' '__data' ${name}datadata.txt 2)
GetLuaFunction () { # $1:luaFunc $2:sectionfile.txt
addrLuaString=$(printf "%0$((($is64+1)*)x" $(( $(expr "$(grep -m 1 -o -a -b -E -e "^${1}$" ${name}cstring.txt)" : '\([0-9]*\):') + $addrTEXTcstring )) )
echo $(sed -n -E "/^$addrLuaString$/{n;p;q;}" $2)
}
echo "# Finding LUA Function SpellStopTargeting..."
addrSpellStopTargeting=$(GetLuaFunction "SpellStopTargeting" ${name}dataconst.txt)
if [ -z $addrSpellStopTargeting ]; then
addrSpellStopTargeting=$(GetLuaFunction "SpellStopTargeting" ${name}datadata.txt)
fi
echo "# Finding CanPerformFunction..."
addrCanPerformFunction=$(sed -n -E "/^$addrSpellStopTargeting"$'\t/,/\tcalll\t/{/.*\tcall.\t0x([0-9a-f]+)/'"{s//0000000000000000\1/;s/.*(.{$((($is64+1)*)})/\1/p;q;};}" ${name}.otool)
echo $addrCanPerformFunction
echo "# Finding patch address..."
patchinstruction=$(sed -n -E "/^$addrCanPerformFunction"$'\t/,/\tret/{/\tja\t/{/\tja\t.*/{p;q;};};}' ${name}.otool)
echo $patchinstruction
echo "# Done"
Last edited by Ravenh; 07-15-2017 at 02:22 PM.
-
Member
Originally Posted by
pqrdk
Hi, Ive been using PQR 1.1.1 for while for mind freezing centrain
spell casts and it works flawlessly and yeaterday I decided to write some abilities by myself and I successfully wrote HoW and Bome Shield renew if not mounted and spells available, auto Plague Strike on Cloak of Shadows, auto blood strike if target have diseases and scourge/death strike are on CD and auto death coil on target if he have disease and ss/ds and bs are on CD and its im range and they all work as I want, but the problem is that sometime I need to use gargoyle or death pact and for that I need to stop my whole rotation to get Runic Power and use one of those and then to re-enable it using ALT+X, so heres my question how can I make a toggle keybind (on/off) for the death coil ability? Couldnt find info on the forums, I know it have something to do with IsRightShift(Control)Down and GetTime() but nothing more. Please somebody explain how to
Thanks.
Use script as addon instead of PQR and just:
/run DisableAddOn("dkscript"); ReloadUI()
Where "dkscript" is your addon.
For enabling again:
/run EnableAddOn("dkscript"); ReloadUI()
-
Member
Originally Posted by
lussuria
Any working rogue script and insturctions on it?
Is there anywhere I can add you because I've tried using PQR in the past but I suck T_T
Doesn't work or attack.. Is it destruction or affilition?
Contact me in skype: twizgfx
-
Member
Hello! i been using pqr alot and wrote few profiles for every class but 1 thing i cant seem to find or write myself is taunt for pve ofc so in rdf if anyone takes aggro i will taunt.
I did have taunt few years back but ye... cant get it to work again somehow =/... got any clue how it would be written?
local Threat = UnitThreatSituation("player", "CustomTarget")
if Threat < 2 then
return true
end
this dose not seem to work
-
Member
Ayone know how to drop a tremor totem when example... arena1 is a warlock?
-
Member
Originally Posted by
dierkop
Ayone know how to drop a tremor totem when example... arena1 is a warlock?
Code:
haveTotem, TotemName = GetTotemInfo(2)
if (UnitClass("arena1") == "Warlock"
or UnitClass("arena2") == "Warlock"
or UnitClass("arena3") == "Warlock")
then
if HaveTotem ~= true
then
CastSpellByName("Tremor Totem")
elseif HaveTotem == true
and TotemName ~= "Tremor Totem"
then
CastSpellByName("Tremor Totem")
end
end
Didn't test it, just wrote it at the moment but should work. Obviously if you want a serious code you need to add more conditions, but this is kinda the skeleton of the script.
-
Post Thanks / Like - 1 Thanks
hampe1994 (1 members gave Thanks to dealerx for this useful post)
-
Member
Originally Posted by
hampe1994
Hello! i been using pqr alot and wrote few profiles for every class but 1 thing i cant seem to find or write myself is taunt for pve ofc so in rdf if anyone takes aggro i will taunt.
I did have taunt few years back but ye... cant get it to work again somehow =/... got any clue how it would be written?
local Threat = UnitThreatSituation("player", "CustomTarget")
if Threat < 2 then
return true
end
this dose not seem to work
Try a debug with print(UnitThreatSituation("player","target")) and see what values you get. Like if < 3 then Taunt, otherwise return, something like this
-
Post Thanks / Like - 1 Thanks
hampe1994 (1 members gave Thanks to dealerx for this useful post)
-
How do I make my Prot warrior 3.3.5 spam heroic strike while using the other abilities if rage >= x. Can it do two spells at the same time