Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
That filename xD
I knew, that you would notice this xd) I want my idea of zeppelins to be heard, because it's a little bit stange, that we can't refer to zeppelins with the help of jass (unit loaded event isn't enough).Google translate claims it's just "screenshot.png". Something amusing about it?
function ShowUnitShadow takes unit whichUnit, boolean flag returns nothing
function GetUnitShadow takes unit whichUnit returns image
It would be great to have control over a unit's shadow.
Something like:
JASS:function ShowUnitShadow takes unit whichUnit, boolean flag returns nothing
Or just give direct control over it with something like:
JASS:function GetUnitShadow takes unit whichUnit returns image
native SetCasterUpgradeArt takes unit whichUnit, string infocardPath returns nothingTooltip refers to a tooltip window, just like a default one.vJASS:type uitooltip extends handle function CreateUITooltip takes real Width, real Height, real screenX, real screenY, string text, integer red, integer green, integer blue returns uitooltip //If width or height are set to 0, apply automatic scaling function DestroyUITooltip takes uitooltip u returns nothing function ShowUITooltip takes uitooltip u, boolean flag returns nothing function SetUITooltipWidth takes uitooltip u, real w returns nothing function SetUITooltipHeight takes uitooltip u, real h returns nothing function GetUITooltipWidth takes uitooltip u returns real function GetUITooltipHeight takes uitooltip u returns real function SetUITooltipX takes uitooltip u, real x returns nothing function SetUITooltipY takes uitooltip u, real y returns nothing function GetUITooltipX takes uitooltip u returns real function GetUITooltipY takes uitooltip u returns real function SetUITooltipText takes uitooltip u, string t returns nothing function GetUITooltipText takes uitooltipu returns string function SetUITooltipTextColor takes uitooltip u, real R, real G, real B, real T returns nothing function GetUITooltipTextR takes uitooltip u returns integer function GetUITooltipTextG takes uitooltip u returns integer function GetUITooltipTextB takes uitooltip u returns integer function GetUITooltipTextT takes uitooltip u returns integer
Is this one-time event or Blizzard will eventually consider all requested features?They will be available in GUI as well. =)
Is this one-time event or Blizzard will eventually consider all requested features?
Oh yes, that's a great suggestion.This isn't really limited to JASS or natives, but is there any chance that Blizzard could finish implementing the "Burrowed" invisibility type? Having two invisibility and detection types would be fantastic, you could for instance have one for sonar and one for radar in modern warfare maps.
Overall though... wow. For so many years i've waited for this day to happen, and now it finally does. Can't wait for this to go live!
type mousebuttontype extends handle
constant native ConvertMouseButtonType takes integer i returns mousebuttontype
constant native GetBJMaxPlayers takes nothing returns integer
constant native GetBJPlayerNeutralVictim takes nothing returns integer
constant native GetBJPlayerNeutralExtra takes nothing returns integer
constant native GetBJMaxPlayerSlots takes nothing returns integer
constant native GetPlayerNeutralPassive takes nothing returns integer
constant native GetPlayerNeutralAggressive takes nothing returns integer
constant integer PLAYER_NEUTRAL_PASSIVE = GetPlayerNeutralPassive()
constant integer PLAYER_NEUTRAL_AGGRESSIVE = GetPlayerNeutralAggressive()
constant mousebuttontype MOUSE_BUTTON_TYPE_LEFT = ConvertMouseButtonType(1)
constant mousebuttontype MOUSE_BUTTON_TYPE_MIDDLE = ConvertMouseButtonType(2)
constant mousebuttontype MOUSE_BUTTON_TYPE_RIGHT = ConvertMouseButtonType(3)
constant playerevent EVENT_PLAYER_MOUSE_DOWN = ConvertPlayerEvent(269)
constant playerevent EVENT_PLAYER_MOUSE_UP = ConvertPlayerEvent(270)
constant playerevent EVENT_PLAYER_MOUSE_MOVE = ConvertPlayerEvent(271)
constant playerunitevent EVENT_PLAYER_UNIT_SELL = ConvertPlayerUnitEvent(272)
constant playerunitevent EVENT_PLAYER_UNIT_CHANGE_OWNER = ConvertPlayerUnitEvent(273)
constant playerunitevent EVENT_PLAYER_UNIT_SELL_ITEM = ConvertPlayerUnitEvent(274)
constant playerunitevent EVENT_PLAYER_UNIT_SPELL_CHANNEL = ConvertPlayerUnitEvent(275)
constant playerunitevent EVENT_PLAYER_UNIT_SPELL_CAST = ConvertPlayerUnitEvent(276)
constant playerunitevent EVENT_PLAYER_UNIT_SPELL_EFFECT = ConvertPlayerUnitEvent(277)
constant playerunitevent EVENT_PLAYER_UNIT_SPELL_FINISH = ConvertPlayerUnitEvent(278)
constant playerunitevent EVENT_PLAYER_UNIT_SPELL_ENDCAST = ConvertPlayerUnitEvent(279)
constant playerunitevent EVENT_PLAYER_UNIT_PAWN_ITEM = ConvertPlayerUnitEvent(280)
constant unitevent EVENT_UNIT_SELL = ConvertUnitEvent(289)
constant unitevent EVENT_UNIT_CHANGE_OWNER = ConvertUnitEvent(290)
constant unitevent EVENT_UNIT_SELL_ITEM = ConvertUnitEvent(291)
constant unitevent EVENT_UNIT_SPELL_CHANNEL = ConvertUnitEvent(292)
constant unitevent EVENT_UNIT_SPELL_CAST = ConvertUnitEvent(293)
constant unitevent EVENT_UNIT_SPELL_EFFECT = ConvertUnitEvent(294)
constant unitevent EVENT_UNIT_SPELL_FINISH = ConvertUnitEvent(295)
constant unitevent EVENT_UNIT_SPELL_ENDCAST = ConvertUnitEvent(296)
constant unitevent EVENT_UNIT_PAWN_ITEM = ConvertUnitEvent(297)
// JAPI Test Functions
native GetTriggerPlayerMouseX takes nothing returns real
native GetTriggerPlayerMouseY takes nothing returns real
native GetTriggerPlayerMousePosition takes nothing returns location
native GetTriggerPlayerMouseButton takes nothing returns mousebuttontype
native SetAbilityTooltip takes integer abilCode, string tooltip, integer level returns nothing
native SetAbilityOnTooltip takes integer abilCode, string tooltip, integer level returns nothing
native SetAbilityExtendedTooltip takes integer abilCode, string ExtendedTooltip, integer level returns nothing
native SetAbilityOnExtendedTooltip takes integer abilCode, string ExtendedTooltip, integer level returns nothing
native SetAbilityResearchTooltip takes integer abilCode, string researchTooltip, integer level returns nothing
native SetAbilityResearchExtendedTooltip takes integer abilCode, string researchExtendedTooltip, integer level returns nothing
native GetAbilityTooltip takes integer abilCode, integer level returns string
native GetAbilityOnTooltip takes integer abilCode, integer level returns string
native GetAbilityExtendedTooltip takes integer abilCode, integer level returns string
native GetAbilityOnExtendedTooltip takes integer abilCode, integer level returns string
native GetAbilityResearchTooltip takes integer abilCode, integer level returns string
native GetAbilityResearchExtendedTooltip takes integer abilCode, integer level returns string
native SetAbilityIcon takes integer abilCode, string iconPath, integer level returns nothing
native GetAbilityIcon takes integer abilCode, integer level returns string
native SetAbilityOnIcon takes integer abilCode, string iconPath returns nothing
native GetAbilityOnIcon takes integer abilCode returns string
native GetAbilityPosX takes integer abilCode returns integer
native GetAbilityPosY takes integer abilCode returns integer
native SetAbilityPosX takes integer abilCode, integer x returns nothing
native SetAbilityPosY takes integer abilCode, integer y returns nothing
native GetAbilityOnPosX takes integer abilCode returns integer
native GetAbilityOnPosY takes integer abilCode returns integer
native SetAbilityOnPosX takes integer abilCode, integer x returns nothing
native SetAbilityOnPosY takes integer abilCode, integer y returns nothing
native GetUnitMaxHP takes unit whichUnit returns integer
native SetUnitMaxHP takes unit whichUnit, integer hp returns nothing
native GetUnitMaxMana takes unit whichUnit returns integer
native SetUnitMaxMana takes unit whichUnit, integer mana returns nothing
native DeleteHeroAbility takes unit whichUnit, integer abilCode returns nothing
native SetItemName takes item whichItem, string name returns nothing
native SetItemDescription takes item whichItem, string name returns nothing
native GetItemDescription takes item whichItem returns string
native SetItemTooltip takes item whichItem, string name returns nothing
native GetItemTooltip takes item whichItem returns string
native SetItemExtendedTooltip takes item whichItem, string name returns nothing
native GetItemExtendedTooltip takes item whichItem returns string
native SetItemIconPath takes item whichItem, string name returns nothing
native GetItemIconPath takes item whichItem returns string
native SetUnitName takes unit whichUnit, string name returns nothing
native SetUnitNameAll takes unit whichUnit, string name returns nothing
native SetHeroProperName takes unit whichUnit, string name returns nothing
native GetUnitBaseDamage takes unit whichUnit, integer weaponIndex returns integer
native SetUnitBaseDamage takes unit whichUnit, integer baseDamage, integer weaponIndex returns nothing
native GetUnitDiceNumber takes unit whichUnit, integer weaponIndex returns integer
native SetUnitDiceNumber takes unit whichUnit, integer diceNumber, integer weaponIndex returns nothing
native GetUnitDiceSides takes unit whichUnit, integer weaponIndex returns integer
native SetUnitDiceSides takes unit whichUnit, integer diceSides, integer weaponIndex returns nothing
native GetUnitAttackCooldown takes unit whichUnit, integer weaponIndex returns real
native SetUnitAttackCooldown takes unit whichUnit, real cooldown, integer weaponIndex returns nothing
native SetSpecialEffectColorByPlayer takes effect whichEffect, player whichPlayer returns nothing
native SetSpecialEffectColor takes effect whichEffect, integer r, integer g, integer b returns nothing
native SetSpecialEffectAlpha takes effect whichEffect, integer alpha returns nothing
native SetSpecialEffectScale takes effect whichEffect, real scale returns nothing
native SetSpecialEffectPosition takes effect whichEffect, real x, real y, real z returns nothing
native SetSpecialEffectHeight takes effect whichEffect, real height returns nothing
native SetSpecialEffectTimeScale takes effect whichEffect, real timeScale returns nothing
native SetSpecialEffectTime takes effect whichEffect, real time returns nothing
native SetSpecialEffectOrientation takes effect whichEffect, real yaw, real pitch, real roll returns nothing
native SetSpecialEffectYaw takes effect whichEffect, real yaw returns nothing
native SetSpecialEffectPitch takes effect whichEffect, real pitch returns nothing
native SetSpecialEffectRoll takes effect whichEffect, real roll returns nothing
native PlaySpecialEffect takes effect whichEffect, integer anim returns nothing
native PlaySpecialEffectWithTimeScale takes effect whichEffect, integer anim, real timeScale returns nothing
constant native DecPlayerTechResearched takes player whichPlayer, integer techid, integer levels returns nothing
native SetEventDamage takes real damage returns nothing
native AutomationTestStart takes string testName returns nothing
native AutomationTestEnd takes string testName returns nothing
native SetSpecialEffectX takes effect whichEffect, real x returns nothing
native SetSpecialEffectY takes effect whichEffect, real y returns nothing
native SetSpecialEffectZ takes effect whichEffect, real z returns nothing
native SetSpecialEffectPositionLoc takes effect whichEffect, location loc returns nothing
native GetLocalSpecialEffectX takes effect whichEffect returns real
native GetLocalSpecialEffectY takes effect whichEffect returns real
native GetLocalSpecialEffectZ takes effect whichEffect returns real
native GetUnitArmor takes unit whichUnit returns real
native SetUnitArmor takes unit whichUnit, real armorAmount returns nothing
native UnitHideAbility takes unit whichUnit, integer abilId, boolean flag returns nothing
native UnitDisableAbility takes unit whichUnit, integer abilId, boolean flag, boolean hideUI returns nothing
native UnitCancelTimedLife takes unit whichUnit returns nothing
native IsUnitSelectable takes unit whichUnit returns boolean
native IsUnitInvulnerable takes unit whichUnit returns boolean
native UnitInterruptAttack takes unit whichUnit returns nothing
native GetUnitCollisionSize takes unit whichUnit returns real
native GetAbilityManaCost takes integer abilId, integer level returns integer
native GetAbilityCooldown takes integer abilId, integer level returns real
native SetUnitAbilityCooldown takes unit whichUnit, integer abilId, integer level, real cooldown returns nothing
native GetUnitAbilityCooldown takes unit whichUnit, integer abilId, integer level returns real
native GetUnitAbilityCooldownRemaining takes unit whichUnit, integer abilId returns real
native EndUnitAbilityCooldown takes unit whichUnit, integer abilCode returns nothing
native GetUnitAbilityManaCost takes unit whichUnit, integer abilId, integer level returns integer
native GetLocalUnitZ takes unit whichUnit returns real
// native GetUnitMovementType takes unit whichUnit returns integer
// native SetUnitMovementType takes unit whichUnit, integer movementType returns nothing
// native GetUnitArmorType takes unit whichUnit returns integer
// native SetHeroStatEx takes unit whichHero, integer whichStat, integer statValue, boolean permanent returns nothing
// native GetHeroPrimaryStat takes unit whichHero returns integer
// native GetHeroPrimaryStatById takes unit whichHero returns integer
// native GetHeroStat takes unit whichHero, integer whichStat, boolean includeBonuses returns integer
constant integer JASS_MAX_ARRAY_SIZE = 32768
function GetEventAttacktype takes nothing returns attacktype
function GetEventDamagetype takes nothing returns damagetype
function UnlockCameraRotation boolean flag returns nothing
//True unlocks camera rotation with a mouse.
This is really a great update for the game, much better than I could have expected and it also will give a lot of more possibilities for creating new maps.
I have one questions though:
Are keyboard events faster now? I mean, there used to be a significant delay when using keyboard events like from 0.6 to 0.8 seconds, I'm not really sure.
Well, there is a noticeable delay with keyboard events when playing single player maps also.The delay is due to the fact that the events need to fire synchronously for all players, to prevent desyncs, meaning the players have to send them over the network to other players before the event can be fired.
It would be nice if they could be made async, but I'm fairly sure that would lead to unfixable desyncs.
So, now that there are 24 players there will be a even bigger delay with keyboard events in multiplayer right?The delay is due to the fact that the events need to fire synchronously for all players, to prevent desyncs, meaning the players have to send them over the network to other players before the event can be fired.
Well, there is a noticeable delay with keyboard events when playing single player maps also.
So, now that there are 24 players there will be a even bigger delay with keyboard events in multiplayer right?
I see, thanks for the informationsDidn't know about that. Is probably related to some internal latency cycles or something, but I'm literally pulling stuff out of my ass here.
Probably not. It depends on the latency settings and your ping to the host. It's basically the same delay you have when issuing unit orders, due to how WC3 works.
WC3 is also not very network heavy, so even a double increase from 12 to 24 players shouldn't really affect network performance, at least I don't think so.
With the event "Player uses cheat code" and special conditions. It will be a powerful thing.A native to disable cheatcode would be nice.
Actually, we need:vJASS:function SetAbilityManaCost takes integer abilCode, integer manaCost, integer level returns nothing function GetAbilityManaCost takes integer abilCode, integer level returns integer
function SetUnitAbilityManaCost takes unit u, integer abilCode, integer manaCost, integer level returns nothing
function GetUnitAbilityManaCost takes unit u, integer abilCode, integer level returns integer
Actually, we need:
vJASS:function SetUnitAbilityManaCost takes unit u, integer abilCode, integer manaCost, integer level returns nothing function GetUnitAbilityManaCost takes unit u, integer abilCode, integer level returns integer
Please explain to me for what reason one may need SetAbilityManaCost if he had SetUnitAbilityManaCost. For possibilities which never gonna be used?Actually we need both!![]()
Yeah, I know. I offer this idea, because some people tried to invent anti-cheat systems in order to catch using "GreedIsGood", "WhosYourDaddy" and so on. Yeah, cheating isn't a problem for single player maps. Also, it help debug projects. My idea includes only some functions for usage, not blocking using cheats at all)Hmm, but why would you want to disable cheat codes? They don't work in multiplayer and they're useful for testing out maps in SP.
It isn't difficult to add this functions to GUI manually. If it is necessary, I will do this in future.Out of curiousity @Kam , will the natives that are added be accessible via JASS only (e.g., GetLocationZ & RemoveLocation), or will they be added to the interface?
Indeed. I forgot. Second point is required for spells affected by caster's position. Here's my idea then.
vJASS:function ApplySpellEffectPoint takes integer abilcode, unit caster, real x, real y returns nothing function ApplySpellEffectTarget takes integer abilcode, unit caster, unit target returns nothing function ApplySpellEffectChanneledPoint takes integer abilcode, unit caster, real x, real y, real timeout returns nothing function ApplySpellEffectChanneledTarget takes integer abilcode, unit caster, unit target, real timeout returns nothing
Caster is required anyway. All those functions don't run if spell can't be applied (because of allowed targets or spell base) or caster == null.