wc3edit.net

United Warcraft 3 map hacking!
It is currently March 28th, 2024, 10:52 pm

All times are UTC




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

Joined: December 17th, 2011, 9:25 am
Posts: 246
Title: Genius
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 RequestExtraBooleanData takes integer dataType,player whichPlayer,string param1,string param2,boolean param3,integer param4,integer param5,integer param6 returns boolean
native RequestExtraIntegerData takes integer dataType,player whichPlayer,string param1,string param2,boolean param3,integer param4,integer param5,integer param6 returns integer
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

native RequestExtraBooleanData takes integer dataType,player whichPlayer,string param1,string param2,boolean param3,integer
[code][/code]



WIP


Last edited by devoltz on December 14th, 2019, 7:46 pm, edited 2 times in total.
Added two new natives on Step-To-Step spoiler.


Top
 Profile  
 
PostPosted: September 18th, 2018, 9:09 am 
Offline
Forum Staff
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 3236
Nice guide.


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

Joined: December 17th, 2011, 9:25 am
Posts: 246
Title: Genius
devoltz wrote:
Nice guide.


Haven't Finish yet but Ty ; w ;


Top
 Profile  
 
PostPosted: September 18th, 2018, 10:13 am 
Offline
Forum Staff
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 3236
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
Old Wrinkly Member
User avatar

Joined: December 17th, 2011, 9:25 am
Posts: 246
Title: Genius
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
Also Not an Admin, but closer than devoltz
User avatar

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


Top
 Profile  
 
PostPosted: May 9th, 2019, 6:21 pm 
Offline
Newcomer

Joined: March 27th, 2019, 1:12 pm
Posts: 12
clanhinata wrote:
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


how to identify if map is only playable on specific platform..

is there any specific condition, like in costume game, the slot map is error, or anything ?


Top
 Profile  
 
PostPosted: May 10th, 2019, 12:00 am 
Offline
Also Not an Admin, but closer than devoltz
User avatar

Joined: February 14th, 2018, 5:35 am
Posts: 1791
Title: Just Another S.Mod
You can't see slots nor start the map.


Top
 Profile  
 
PostPosted: May 18th, 2019, 2:22 pm 
Offline
Newcomer

Joined: March 27th, 2019, 1:12 pm
Posts: 12
what version warcraft 3 dz163 use now ? is it 1.26a ?


Top
 Profile  
 
PostPosted: April 26th, 2020, 8:27 am 
Offline
Newcomer

Joined: April 25th, 2020, 6:51 pm
Posts: 1
Umm how to do in war3map.j it


You do not have the required permissions to view the files attached to this post.


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 5 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)