• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[vJASS] Question

Status
Not open for further replies.
Level 19
Joined
Aug 8, 2007
Messages
2,765
function ReleaseCameraUnit takes player p returns nothing

function ReleaseMovementUnit takes player p returns nothing

if your trying to seriously make a map you need a coder -_-
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
As far as I know, DotA is written in GUI :)

nope. vJass. (or atleast JASS).

how do i know? i just opened it :\

JASS:
local trigger t=GetTriggeringTrigger()
local integer E0X=GetHandleId(t)
local unit CGR=(LoadUnitHandle(HY,(E0X),('|')))
local integer CLR=(LoadInteger(HY,(E0X),('}')))
local integer CMR=(LoadInteger(HY,(E0X),('j')))
local integer CPR=(LoadInteger(HY,(E0X),('k')))
local integer CQR=(LoadInteger(HY,(E0X),('l')))
local integer CSR=(LoadInteger(HY,(E0X),('m')))
local integer CTR=(LoadInteger(HY,(E0X),('n')))
local integer CUR=(LoadInteger(HY,(E0X),('o')))
local player p0=(LoadPlayerHandle(HY,(E0X),('v')))
local player p1=(LoadPlayerHandle(HY,(E0X),('w')))
local player p2=(LoadPlayerHandle(HY,(E0X),('x')))
local player p3=(LoadPlayerHandle(HY,(E0X),('y')))
local player p4=(LoadPlayerHandle(HY,(E0X),('z')))
local player p5=(LoadPlayerHandle(HY,(E0X),('{')))
local integer CWR=(LoadInteger(HY,(E0X),('p')))
local integer CYR=(LoadInteger(HY,(E0X),('q')))
local integer CZR=(LoadInteger(HY,(E0X),('r')))
local integer C_R=(LoadInteger(HY,(E0X),('s')))
local integer C0R=(LoadInteger(HY,(E0X),('t')))
local integer C1R=(LoadInteger(HY,(E0X),('u')))

JASS:
loop
exitwhen X6X>X7X
call V7X(M0,1,X6X+3+PSV,E5X(L1[GetPlayerId(T1[X6X])]))
call V3X(M0,3,X6X+3+PSV,"|c00838B8B"+I2S(GetHeroLevel(L1[GetPlayerId(T1[X6X])]))+"|r")
if TVV[GetPlayerId(GetLocalPlayer())]then
call ENX(M0,7,1,3)
call ENX(M0,8,1,2.8)
call ENX(M0,9,1,.8)
call ENX(M0,$A,1,.8)
call ENX(M0,$B,1,.8)
call ENX(M0,$C,1,.8)
call ENX(M0,$D,1,.1)
call ENX(M0,7,X6X+3+PSV,3)
call ENX(M0,8,X6X+3+PSV,1.1)
call ENX(M0,9,X6X+3+PSV,1.1)
call ENX(M0,$A,X6X+3+PSV,1.1)
call ENX(M0,$B,X6X+3+PSV,1.1)
call ENX(M0,$C,X6X+3+PSV,1.1)
call ENX(M0,$D,X6X+3+PSV,.1)
call V9X(M0,8,X6X+3+PSV,false,true)
call V9X(M0,9,X6X+3+PSV,false,true)
call V9X(M0,$A,X6X+3+PSV,false,true)
call V9X(M0,$B,X6X+3+PSV,false,true)
call V9X(M0,$C,X6X+3+PSV,false,true)
call V9X(M0,$D,X6X+3+PSV,false,true)
call V3X(M0,8,1,"Items")
else
call ENX(M0,7,1,2)
call ENX(M0,8,1,.1)
call ENX(M0,9,1,.1)
call ENX(M0,$A,1,.1)
call ENX(M0,$B,1,.1)
call ENX(M0,$C,1,.1)
call ENX(M0,$D,1,.1)
call ENX(M0,7,X6X+3+PSV,2.5)
call ENX(M0,8,X6X+3+PSV,.1)
call ENX(M0,9,X6X+3+PSV,.1)
call ENX(M0,$A,X6X+3+PSV,.1)
call ENX(M0,$B,X6X+3+PSV,.1)
call ENX(M0,$C,X6X+3+PSV,.1)
call ENX(M0,$D,X6X+3+PSV,.1)
call V9X(M0,8,X6X+3+PSV,false,false)
call V9X(M0,9,X6X+3+PSV,false,false)
call V9X(M0,$A,X6X+3+PSV,false,false)
call V9X(M0,$B,X6X+3+PSV,false,false)
call V9X(M0,$C,X6X+3+PSV,false,false)
call V9X(M0,$D,X6X+3+PSV,false,false)
call V3X(M0,8,1," ")
endif
call V7X(M0,8,X6X+3+PSV,PXR(T1[X6X],1))
call V7X(M0,9,X6X+3+PSV,PXR(T1[X6X],2))
call V7X(M0,$A,X6X+3+PSV,PXR(T1[X6X],3))
call V7X(M0,$B,X6X+3+PSV,PXR(T1[X6X],4))
call V7X(M0,$C,X6X+3+PSV,PXR(T1[X6X],5))
call V7X(M0,$D,X6X+3+PSV,PXR(T1[X6X],6))
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
I had one of those opendota maps as well, and it contained a gazillion of BJ's - so even if it's not coded in GUI, it's really poorly written.

in that .j (which is the official latest dota), theres a bj roughly every 100-150 lines and I recognize most of them as the good BJs (CreateQuest, IMax, RMax, etc)

enough about that, back on topic
 
Radamantus, your link is a deprotected version of DotA, not an unprotected one (which means everything has not been recovered, including GUI triggers if there were some in the devellopment version).

There was a time I investigated the jass scripts of protected version of DotA. I think it is done in pure jass and not vJass, because there were a big use of hashtable (and string hash) and nothing like structs-looking stuff. There wasn't any "ExecuteFunc" in the main function either, which is a vJass mark.
But I know it has changed several time since then. The string hashs have been replaced by integers, for instance.

[/mytwocents]
 
Level 19
Joined
Aug 8, 2007
Messages
2,765
Radamantus, your link is a deprotected version of DotA, not an unprotected one (which means everything has not been recovered, including GUI triggers if there were some in the devellopment version).

There was a time I investigated the jass scripts of protected version of DotA. I think it is done in pure jass and not vJass, because there were a big use of hashtable (and string hash) and nothing like structs-looking stuff. There wasn't any "ExecuteFunc" in the main function either, which is a vJass mark.
But I know it has changed several time since then. The string hashs have been replaced by integers, for instance.

[/mytwocents]

well duh, because its all compressed :\
Is that all??

yeah just use those two functions if u want to release the player from the movement system / camera system
 
Level 14
Joined
Apr 20, 2009
Messages
1,543
I really hope people will finally see the glory in reading some day...
JASS:
    // Advanced Camera System by The_Witcher
    //
    // This is a very advanced advanced camera system which adjusts the camera
    // distance to the target so the camera isn't looking through houses/trees/...
    // and the cameras angle of attack so the view isn't blocked because of hills...
    //
    // useful for RPGs and that stuff
    //
    // To bind the camera to a unit for a player use
    //   SetCameraUnit(  unit, player )
    //
    // if you want to have your normal camera again use
    //   ReleaseCameraUnit(  player  )
    //
    // in case you want to know which unit is bound to the camera for player xy use
    //   GetCameraUnit(  player  )
    //
    // to change the AngleOfAttack of a player ingame use
    //   SetCamDefaultAngleOfAttack(  Player, NewValue  )
    //
    // to change the maximal camera target distance of a player ingame use
    //   SetCamMaxDistance(  Player, NewValue  )
    //
    // to change the maximal distance behind the target, the z-offset is checked (for z-angle), of a player ingame use
    //   SetCamMaxZCheckDistance(  Player, NewValue  )

This basic jass syntax is called like this:

  • Custom script: call ReleaseCameraUnit(udg_your_gui_variable)
where your_gui_variable is a player variable in GUI.

Also, have you seen that tiny little detail in the submission thread saying?:
If you need a GUI tutorial for this system then read this one, made by Kirizaru
Tutorial

I don't know. Maybe you just overlooked it somehow ๏_๏
I don't think it can get any clearer then that without raping eyesight with oversized fonts.
 
Last edited:
Status
Not open for further replies.
Top