wc3edit.net

United Warcraft 3 map hacking!
It is currently October 19th, 2018, 9:35 pm

All times are UTC




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: September 18th, 2018, 7:10 am 
Offline
Senior Member
User avatar

Joined: December 17th, 2011, 9:25 am
Posts: 110
Title: Just an old cheater
Okay , The tittle tell all already , so let's get started

FAQ
Spoiler:
Q) What is Dz163 ?
A) Dz163 is China Warcraft Plaform , It's like Battlenet or Garena Lan or M16 . Main Page Here : http://dz.163.com/

Q) Why we need do this ?
A) Make Download From Dz163 is playable only in it plaform , no lan , no battle , no everything . It have a ton of exclusive map that not release outside Dz163 or higher version than release from other source .

Q) There it something wrong to the map when i follow those step
A) This only make map "playable" only , not perfect work like it play on Dz163 Plaform

Q) Can't understand anything on your guide , can you make it more easy and simple ?
A) Nope , but you can ask ya



Notes And Tips
Spoiler:
- Need good knowledge about Jass , atleast can read and write Jass . Slow or fast it's fine
- Be Creative
- Better Touch Dz163 Before Try This

Method Explain
Spoiler:
- The reason Dz163 Map unable to play on LAN or Battlenet because it's use custom native provide by plaform , The normal Warcraft 3 don't have the native so it unable to host because syntax error
- So what we do now is fake the native and convert it to function , this is why the map "playable" only .

Tools
Spoiler:
- Ladik's MPQ
- Jass Craft
- Notepad++(Optional)
- Pjass.exe(Inside Jasscraft)
- Fukki Hex Editor(Somewhere around Wc3edit)
- Example Map

Step-To-Step
Spoiler:
1. Extract War3map.j

2. Find Native
- Native alway under endglobals so you can find them there

Here is in Example Map
Quote:
native DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns boolean
native DzAPI_Map_GetServerValue takes player whichPlayer,string key returns string
native DzAPI_Map_Stat_SetStat takes player whichPlayer,string key,string value returns nothing
native DzAPI_Map_IsRPGLobby takes nothing returns boolean
native DzAPI_Map_GetMapLevel takes player whichPlayer returns integer
native DzAPI_Map_HasMallItem takes player whichPlayer,string key returns boolean
native EXGetUnitAbility takes unit u,integer abilcode returns ability
native EXGetAbilityDataReal takes ability abil,integer level,integer data_type returns real
native EXSetAbilityDataReal takes ability abil,integer level,integer data_type,real value returns boolean
native EXSetItemDataString takes integer itemcode,integer data_type,string value returns boolean
native EXGetEventDamageData takes integer edd_type returns integer
native EXSetEventDamage takes real amount returns boolean


3.Convert Native to Function
- You can copy those Native into a new file for easy to see and not mess with the function inside map
change all "native" into "function" and put endfunction under them

Quote:
function DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns nothing
endfunction
function DzAPI_Map_GetServerValue takes player whichPlayer,string key returns string
endfunction
function DzAPI_Map_Stat_SetStat takes player whichPlayer,string key,string value returns nothing
endfunction
function DzAPI_Map_IsRPGLobby takes nothing returns boolean
endfunction
function DzAPI_Map_GetMapLevel takes player whichPlayer returns integer
endfunction
function DzAPI_Map_HasMallItem takes player whichPlayer,string key returns boolean
endfunction
function EXGetUnitAbility takes unit u,integer abilcode returns ability
endfunction
function EXGetAbilityDataReal takes ability abil,integer level,integer data_type returns real
endfunction
function EXSetAbilityDataReal takes ability abil,integer level,integer data_type,real value returns boolean
endfunction
function EXSetItemDataString takes integer itemcode,integer data_type,string value returns boolean
endfunction
function EXGetEventDamageData takes integer edd_type returns integer
endfunction
function EXSetEventDamage takes real amount returns boolean
endfunction


4. Valid Function and Syntax Fix
- Read and understand function ,for example this :
DzAPI_Map_SaveServerValue , Why we need connect to there server when you play not in there server .
DzAPI_Map_GetServerValue , It's get something from the server and return string . This need you look around the code that call this . In example map i return "dummystring"

Okay , here is the function after make it valid and syntax fix
Quote:
function DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns nothing
endfunction
function DzAPI_Map_GetServerValue takes player whichPlayer,string key returns string
return "dummystring"
endfunction
function DzAPI_Map_Stat_SetStat takes player whichPlayer,string key,string value returns nothing
endfunction
function DzAPI_Map_IsRPGLobby takes nothing returns boolean
return true
endfunction
function DzAPI_Map_GetMapLevel takes player whichPlayer returns integer
return 5
endfunction
function DzAPI_Map_HasMallItem takes player whichPlayer,string key returns boolean
return false
endfunction
function EXGetUnitAbility takes unit u,integer abilcode returns ability
return null
endfunction
function EXGetAbilityDataReal takes ability abil,integer level,integer data_type returns real
return .0
endfunction
function EXSetAbilityDataReal takes ability abil,integer level,integer data_type,real value returns boolean
return false
endfunction
function EXSetItemDataString takes integer itemcode,integer data_type,string value returns boolean
return false
endfunction
function EXGetEventDamageData takes integer edd_type returns integer
return 0
endfunction
function EXSetEventDamage takes real amount returns boolean
return false
endfunction


5. Syntax Check(Optional)
- Get Pjass.exe , Common.j , Common.ai , Blizzard.j from Jass Craft Folder or you can get them from Hiveworkshop and War3.mpq . Put them in a folder with War3map.j

Create a .cmd , input this :
pjass common.j common.ai Blizzard.j War3map.j >Error.txt

Then run it , then open Error.txt if you see error that not related to your edit that you did . Ignore it and you done

If you got those $ error , you know what to do right ? Fukki Hex Fixer is ur friend here

Here is the error for Example War3map.j
Quote:
Parse successful: 2418 lines: common24.j
Parse successful: 2583 lines: common24.ai
Parse successful: 10230 lines: Blizzard24.j
War3map.j:3204: Functions passed to Filter or Condition must return a boolean
War3map.j:3205: Functions passed to Filter or Condition must return a boolean
War3map.j:3206: Functions passed to Filter or Condition must return a boolean
War3map.j:3207: Functions passed to Filter or Condition must return a boolean
War3map.j:3208: Functions passed to Filter or Condition must return a boolean
War3map.j:3209: Functions passed to Filter or Condition must return a boolean
War3map.j failed with 6 errors
Parse failed: 6 errors total


Look legit ya

Notes : Don't use fix hex war3map.j , use the base one . Fix Hex War3map.j for syntax check only

6. Import and Test
- Just Import the file back to the map , Compact Archive or Vex Optimizer if you want
- Test and feel your work


Worked Native Templates And Explain
native DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns nothing
Spoiler:
//Call To Save Value To The Server
function DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns nothing
endfunction

native DzAPI_Map_GetServerValue takes player whichPlayer,string key returns string
Spoiler:
//Call to Get Data From The Server
function DzAPI_Map_GetServerValue takes player whichPlayer,string key returns string
return null //Better return a string than null but you can modify this function to get stuff
endfunction

native DzAPI_Map_Stat_SetStat takes player whichPlayer,string key,string value returns nothing
Spoiler:
//Same as DzAPI_Map_SaveServerValue , Call to set account server stats
function DzAPI_Map_Stat_SetStat takes player whichPlayer,string key,string value returns nothing
endfunction




WIP


Last edited by clanhinata on September 18th, 2018, 10:23 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: September 18th, 2018, 9:09 am 
Offline
Super Moderator
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 1985
Title: big brain
Nice guide.


Top
 Profile  
 
PostPosted: September 18th, 2018, 9:57 am 
Offline
Senior Member
User avatar

Joined: December 17th, 2011, 9:25 am
Posts: 110
Title: Just an old cheater
devoltz wrote:
Nice guide.


Haven't Finish yet but Ty ; w ;


Top
 Profile  
 
PostPosted: September 18th, 2018, 10:13 am 
Offline
Super Moderator
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 1985
Title: big brain
clanhinata wrote:
Haven't Finish yet but Ty ; w ;
There's a similar protection on RGC dota maps, i managed to make it playable long time ago, didnt knew about that chinese platform.


Top
 Profile  
 
PostPosted: September 18th, 2018, 10:33 am 
Offline
Senior Member
User avatar

Joined: December 17th, 2011, 9:25 am
Posts: 110
Title: Just an old cheater
devoltz wrote:
clanhinata wrote:
Haven't Finish yet but Ty ; w ;
There's a similar protection on RGC dota maps, i managed to make it playable long time ago, didnt knew about that chinese platform.


I can say those protection kinda like DRM


Top
 Profile  
 
PostPosted: September 18th, 2018, 4:14 pm 
Offline
Moderator
User avatar

Joined: February 14th, 2018, 5:35 am
Posts: 516
Title: Just Another Mod
Good job. Would be cool if you add some images to make it good looking. Keep it up.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group

phpBB SEO


Privacy Policy Statement
Impressum (German)