Jump to content

World Of Warcraft Development


malu05
 Share

Recommended Posts

If I might ask, which addon did you write? (links to curse gaming or wow ui plz)

hi there, i developed an addon to listen to webradio streams in wow ... since they removed the funtion in 2.0.0 i had to recreate the funtionality via autoit an "invisible keypress gui" on autoit site and a fake gui on wow lua site.

works good except you can even control it out of notepad ) which should NOT work :) )

its currently in beta stadium so ill release the code here when its ready. addon and au3...

ps: thx for asking.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

  • Replies 470
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

DUH.

It blew the air out of me .... i was looking forward to a programming weekend of trial and error.

Tell your "friend" not to accidentally post source code if he can't realise the consequences.

But on the other hand there will be a nice cleanup from blizzard ... (Diabolical laughter).

Anyway back to my part in this history:

After a late night struggling with the Direct 3D i lost the battle, but not the war.

Ready at the moment:

Overal Continent map. Clickable -- On_MouseDown(MouseEvent e) -- opens a new window with the BLP where you can put your Pathfinding costs.

But realize one thing. One blp is 533.375 * 533.375 = (Roughly removing the decimals) 284089 coordinate positions.

It is humanely imposible to add Pathfinding costs for all BLP but on the other hand 2/3 of the continent map is empty, and roughly 30% of a blp is impassable so only the contour of the impassable area needs to be marked.

Im working on a part of Stonetalon Mountain, Barrens, Mulgore, Durotar (Overall coordinates 24,24 to 31,31 (Blp coordinates).

Still strugling with the grid settings cause of the damn .375 but im soon there.

I will post screendumps soon (2-3 days).

Until then ... have a good life.

BR

/P

.

Hehe i can imagine a war there.

And i must say you are a brave fighter.

Looking forward to see some screnies!

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

@Periklis you should think realy good before you write such as much code, becouse if you want to add something...hf @ rewriting ;/

I sure i woulda failed but i would learn something in the process.

Anyway ... i guess im almost done.

Path is calculated for each BLP. GUI is responding very well (not on start ... it has to load and parse 280+ K on coords) but it gets alive after arcound 5 secs.

If Gui is invalidated (moved behind a window for ex) it redraws.

Kinda bored to work on Azeroth so im making paths for Kalimdor. Path files will be following road from Stonetalon mountains to Thousand Needles. 8 or 10 pathing binary files.

Hey malu05. Is your bot still using the same xml format ? <ROW/> elements?

Kinda rushing to let you try the goodies ...

BR

/P

.

Link to comment
Share on other sites

kind of yellow light bulb sparkling above my head what if you have two wows running on one maschine one healer and one tank... and you record the packages for the tank and change them to fit to the healer ...

wouldn't the healer beam after the tank like realtime walking .. if so you could control two chars at once...

:)

Or you take a paladin :D

Edited by JRSmile
$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

Getting errors while running script:

Line 62

SetPrivilege("SeDebugPrivilege",1)
^ ERROR

Error: Unkown function name.

Requesting assistance.

The Packet sniffer don't need to have preveliges so just remove it from the code if it is the thing you are testing.

The hack thing requires the Normand memory thing, download the Thermo Prime + Includes from the main post, the Normandmemory.au3 is included in that package. Put it into your autoIT/includes/ directory.

I sure i woulda failed but i would learn something in the process.

Anyway ... i guess im almost done.

Path is calculated for each BLP. GUI is responding very well (not on start ... it has to load and parse 280+ K on coords) but it gets alive after arcound 5 secs.

If Gui is invalidated (moved behind a window for ex) it redraws.

Kinda bored to work on Azeroth so im making paths for Kalimdor. Path files will be following road from Stonetalon mountains to Thousand Needles. 8 or 10 pathing binary files.

Hey malu05. Is your bot still using the same xml format ? <ROW/> elements?

Kinda rushing to let you try the goodies ...

BR

/P

.

Yes...

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

Hey Malu,

the script you released yesterday looks like its just doing memory edits after it finds the pointers.

But, i thought your altitude/wall stuff was based on your DSM? Doesn't DSM use packet manupulation?

Any plans to post your datastream/packet manpulation stuff, even with just packet manipulation functions and not exploits?

Link to comment
Share on other sites

he has already released everything you need, just use your brain to add a fiew rows of code and voila you have your wallhack noclip ingamemap walk without pressing keys bot/program :)

its realy easy as i found for myself...

thx again malu for kicking my as to this progress.

ps: malu would you please answer my PM :D

Edited by JRSmile
$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

he has already released everything you need, just use your brain to add a fiew rows of code and voila you have your wallhack noclip ingamemap walk without pressing keys bot/program :)

its realy easy as i found for myself...

thx again malu for kicking my as to this progress.

ps: malu would you please answer my PM :D

im not really looking for wallhacking/noclip etc, just the code/functions pertaining to packet manipulation

Link to comment
Share on other sites

you could do something like this.

Func PacketX_OnPacket($oPacket)

    For $bByte In $oPacket.Data
        $bytelength = $bytelength + 1
        If $bytelength > 0 Then
            $i = $i + 1
            If $bytelength < 35 Then
                $valuesOwn[$i] = Hex($bByte, 2)
            EndIf
        EndIf
    Next
    If $bytelength = 34 Then
        $loc_y = $valuesOwn[22] & " " & $valuesOwn[21] & " " & $valuesOwn[20] & " " & $valuesOwn[19]
        $loc_x = $valuesOwn[18] & " " & $valuesOwn[17] & " " & $valuesOwn[16] & " " & $valuesOwn[15]
        $loc_z = $valuesOwn[26] & " " & $valuesOwn[25] & " " & $valuesOwn[24] & " " & $valuesOwn[23]
        $loc_r = $valuesOwn[30] & " " & $valuesOwn[29] & " " & $valuesOwn[28] & " " & $valuesOwn[27]
        $loc_t = $valuesOwn[13] & " " & $valuesOwn[12] & " " & $valuesOwn[11]
        GUICtrlSetData($timeframe, "Timestamp: " & $loc_t)
        GUICtrlSetData($rotation, "Rotation: " & $loc_r)
        GUICtrlSetData($posY, "PosY: " & $loc_y)
        GUICtrlSetData($posX, "PosX: " & $loc_x)
        GUICtrlSetData($posZ, "PosZ: " & $loc_z)
        $valuesOwn[23] = $valuesOwn[24] + 10; altitude plus 10
        $new_package = ""
        for $x = 1 to 35
            $new_package &= $valuesOwn[$x]
        Next
        _sendpackage($new_package)
    EndIf
    $i = 0
    $bytelength = -54
EndFunc  ;==>PacketX_OnPacket

this is just an example and won't work due to missing charakter transformation.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

dno if this is a noobish question, but i didnt get what that "#include <NomadMemory.au3>" means? any of you who can help me with that? =(

for the packet analyzer you dont need it you can delete the row that makes the error after deleting this out of the code.

for thermo all other apps you can get the include file NomadMemory.au3 out of one of the rar files on the first page of this post.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

Stage where i cleanup debug code and stuff and before releasing i wanted to ask for some feedback/suggestions.

This screenshot shows the main GUI:

Posted Image

In this Form you can select the continent you wish to work on.

Clicking on an area in the map opens up the detail GUI where you can "Paint" Path costs.

Clicked on this:

Posted Image

and this form opens up.

I actually added some costs ... colors are in alpha(40%) so they are kinda transparent but thinking of making them more solid.

Posted Image

Then came the problems :) damn decimal coords.

My brain did not work as i wished due to RL patterns of thinking but:

Posted Image

DUH! 4 years of University and 10 years of RL experience and it took me a week to figure. I think im getting old.

Now to the solutions im thinking of:

A. Multiple Path files (One for each BLP).

Positive.

Many smaller files 280kb each 4kb compressed.

Negative.

2 Tier solution. Another pathfinding must occur on a higher tier to decide the BLPS that need to be traversed.

B. One BIIIIIG File.

Positive.

One step pathfinding.

Negative.

1.16 Gb file ... Not big in my opinion since compressed it will be a few Mb but parsing it (loading it in memory) can be a challenge.

Solution for that could be:

Posted Image

So actually you provide current Position and destination and the tool copies the part required into memory and calculates path.

In pseudocode a program flow:

String XMLFilename CalculateTBPath(int StartX, int StartY, int EndX, int EndY)

/* Transform Coordinates from WoW Coordinates to Tool Coordinates */

if( StartX < 0)
    ToolSX = 17068 + Absolute(StartX)
else
    ToolSX = StartX

if( StartY < 0)
    ToolSY = 17068 + Absolute(StartY)
else
    ToolSY = StartY

if( EndX < 0)
    ToolEX = 17068 + Absolute(EndX)
else
    ToolEX = EndX

if( EndY < 0)
    ToolEY = 17068 + Absolute(EndY)
else
    ToolEY = EndY

/* Copy the part of the array we need */
byte[,] tempArray = CopyFromMainArray(ToolSX, ToolSY, ToolEX, ToolEY) 

/* Find the path and tranform it to WOW coordinates since the tool works only with positive Coords */
ArrayList ToolPath = FindPath(tempArray, ToolSX, ToolSY, ToolEX, ToolEY)

ArrayList WoWPath = TransformToWowCoords(ToolPath)

foreach(ArrayListItem item in WoWPath.Items)
{
    /* Add <ROW/> Elements to XML file */
    AddROWElement(item) 
}

So in a few words you call the COM object using Start and End coordinates and it creates an XML file and returns the filename to you for further proccessing.

TODO:

Since now the binary files are written sequentially in case i do the big file solution i have to alter the type of writing / reading ... but that's easy.

think of BLPS that are 535 * 535. I think such occurance can happen. But having an error of 2 from one edge of the map to the other doesnt sound much to me.

Anyways gotta get back to Work.

BR

/Periklis

.

Link to comment
Share on other sites

very nice way of thinking ...

love to see what you will release.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

Stage where i cleanup debug code and stuff and before releasing i wanted to ask for some feedback/suggestions.

This screenshot shows the main GUI:

Posted Image

In this Form you can select the continent you wish to work on.

Clicking on an area in the map opens up the detail GUI where you can "Paint" Path costs.

Clicked on this:

Posted Image

and this form opens up.

I actually added some costs ... colors are in alpha(40%) so they are kinda transparent but thinking of making them more solid.

Posted Image

Then came the problems :) damn decimal coords.

My brain did not work as i wished due to RL patterns of thinking but:

Posted Image

DUH! 4 years of University and 10 years of RL experience and it took me a week to figure. I think im getting old.

Now to the solutions im thinking of:

A. Multiple Path files (One for each BLP).

Positive.

Many smaller files 280kb each 4kb compressed.

Negative.

2 Tier solution. Another pathfinding must occur on a higher tier to decide the BLPS that need to be traversed.

B. One BIIIIIG File.

Positive.

One step pathfinding.

Negative.

1.16 Gb file ... Not big in my opinion since compressed it will be a few Mb but parsing it (loading it in memory) can be a challenge.

Solution for that could be:

Posted Image

So actually you provide current Position and destination and the tool copies the part required into memory and calculates path.

In pseudocode a program flow:

String XMLFilename CalculateTBPath(int StartX, int StartY, int EndX, int EndY)

/* Transform Coordinates from WoW Coordinates to Tool Coordinates */

if( StartX < 0)
    ToolSX = 17068 + Absolute(StartX)
else
    ToolSX = StartX

if( StartY < 0)
    ToolSY = 17068 + Absolute(StartY)
else
    ToolSY = StartY

if( EndX < 0)
    ToolEX = 17068 + Absolute(EndX)
else
    ToolEX = EndX

if( EndY < 0)
    ToolEY = 17068 + Absolute(EndY)
else
    ToolEY = EndY

/* Copy the part of the array we need */
byte[,] tempArray = CopyFromMainArray(ToolSX, ToolSY, ToolEX, ToolEY) 

/* Find the path and tranform it to WOW coordinates since the tool works only with positive Coords */
ArrayList ToolPath = FindPath(tempArray, ToolSX, ToolSY, ToolEX, ToolEY)

ArrayList WoWPath = TransformToWowCoords(ToolPath)

foreach(ArrayListItem item in WoWPath.Items)
{
    /* Add <ROW/> Elements to XML file */
    AddROWElement(item) 
}

So in a few words you call the COM object using Start and End coordinates and it creates an XML file and returns the filename to you for further proccessing.

TODO:

Since now the binary files are written sequentially in case i do the big file solution i have to alter the type of writing / reading ... but that's easy.

think of BLPS that are 535 * 535. I think such occurance can happen. But having an error of 2 from one edge of the map to the other doesnt sound much to me.

Anyways gotta get back to Work.

BR

/Periklis

.

Haha ^^

I would break down over that too^^

Anyway, the main GUI there... is that a prerendered image?

And how much memory does it eat in the diffrent "stages" of process?

[center][u]WoW Machinima Tool[/u] (Tool for Machinima Artists) [/center]

Link to comment
Share on other sites

i don't hope that this thread will be lost in the archive of this forum.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...