• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Producer Update: Natives List

Status
Not open for further replies.
Level 14
Joined
Jan 16, 2009
Messages
716
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
 
Level 14
Joined
Jan 16, 2009
Messages
716
@LeP
I know, I did my research, it's actually that script that made me think that it would be very easy to add a native that returns the shadow of a unit as it's an image. I think it would be good to have access to it without needing to do some messy stuff.
 
Level 4
Joined
May 8, 2016
Messages
58
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
Tooltip refers to a tooltip window, just like a default one.
 
Last edited:
Level 2
Joined
Aug 10, 2016
Messages
20
Probably, it will be cool to have an opportunity to shape regions (for example, make triangles, circles and so on from them). It will modify power of the usage of "Unit enters region" event (not rect, because, to my mind, it's too difficult to rewrite game code in order to change this variable type absolutely). Also, it will be cool to have a function like "GroupEnumUnitsInRegion". Spellmakers will value this function, because it's too necessary sometimes to pick up units in a arbitrary geometrical shape (especially in polygons).

To my mind, functions like "GetUnitScale", "GetUnitVertexColorR(G,B,A)", "GetUnitPathing", "GetUnitExploded" (or "IsUnitExploded") should be native.
 
Last edited by a moderator:
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!
 
Level 48
Joined
Jul 29, 2008
Messages
9,838
O
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!
Oh yes, that's a great suggestion.
 
Level 20
Joined
Feb 23, 2014
Messages
1,265
@Kam

It's awesome that these new natives get a GUI equivalent. THANK YOU!

One more question, though - could we also get a way to destroy unit groups and locations in the GUI? :)
 

Sverkerman

Hosted Project: BoW
Level 17
Joined
Feb 28, 2010
Messages
1,325
Thank you Blizzard for this awesome update and thank you @Kam for your dedication to the community :)
I have two suggestions that I'd like voiced here.
-Add a native to change a unit's skin ingame. (This kills the need for the huge warclub workaround)
-Add a native to change a unit's combat sound ingame. (This kills the need to abuse Bear Form to change unit type to a new unit type with the desired combat sound.)
 
All Lines not beeing containted inside the common.j of 1.28.5, but are inside 1.29 public test (includes changed lines):

It is no error that the events are listed, the numbers were changed.
JASS:
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

Edit: 1.29 PTR (March 15 Update)
JASS:
constant integer JASS_MAX_ARRAY_SIZE = 32768
 
Last edited:
Level 4
Joined
May 8, 2016
Messages
58
vJASS:
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.

Pls implement this.
 
Last edited:
Level 6
Joined
Jun 4, 2017
Messages
172
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.
 
Level 18
Joined
Jun 13, 2016
Messages
586
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.

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.
 
Level 6
Joined
Jun 4, 2017
Messages
172
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.
Well, there is a noticeable delay with keyboard events when playing single player maps also.
Speaking also about multiplayer:
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.
So, now that there are 24 players there will be a even bigger delay with keyboard events in multiplayer right?
 
Level 18
Joined
Jun 13, 2016
Messages
586
Well, there is a noticeable delay with keyboard events when playing single player maps also.

Didn'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.

So, now that there are 24 players there will be a even bigger delay with keyboard events in multiplayer right?

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.
 
Level 6
Joined
Jun 4, 2017
Messages
172
Didn'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.
I see, thanks for the informations :)
 
Level 5
Joined
Dec 6, 2009
Messages
79
Would really like to see both mouse and keyboard local events as well. And maybe some means for synchronizing stuff properly? I know there are various functions but those seemed really slow iirc. Maybe some kind of fire event/listen to event architecture which would allow firing an event with data from a local player and then receiving that data synchronously on all clients.
 
Level 11
Joined
Mar 6, 2008
Messages
898
I like this new stuff. Maybe I will come back to hack again on some custom maps in the future.
What I really missed all the time was support for sync with B.Net servers to allow for great net-synced games with leader boards - could be a really big fish though ...
Besides that a simple File IO library where we cannot only write to files but also read from them would be fine and enough for many game types.

The best new features are those that add most value to map makers with least amount of work for their introduction.

I don't know if this is the correct thread but also the WC3 pathing system, the static UI as well as the graphics engine could need an update if that's in reach of possibilities for the planned updates to come.
 
Level 4
Joined
Jan 27, 2016
Messages
89
Some things I'd like to suggest:

>Adding unit-state modifying things like silence directly onto a unit through a bool toggle or for a modifiable real duration

>Getting more unit info like keybind or position on unit card, and most importantly, description

>Add a unit to some sort of in built squad AI by essentially tying the position and order of the unit to a main unit, based off of the neutral camp AI. Biggest thing is making it work with waygates, as they can be buggy (and add some maximum-distance leash at which point they teleport to the main unit)

>Modify collision size or remove it like with ghost

>Make a unit not trigger aggro if it deals damage

>Modify unit attack priority

>Give unit (not building) a way to train units without screwing up its display bar and essentially letting it happen in the background, maybe create a floating training/que bar above the unit portrait like in Dawn of War

>Creating attacks of a type that a unit doesnt have, for example creating an artillery projectile and firing it for a melee unit. Also an orb detection system that will more easily detect orbs and apply it to the hit units.

>something to allow being able to attack while moving
>Move a unit selection circle, or at least the visual part

>Add custom categories to units that also work with ability specifications and auras

>A function that will fire when a units animations reach a specific duration, at a negative value waits until its finished

>Something based off of:Same Ability with different level to essentially set abilities as "Sister abilities" that allows them to be treated as the same ability being cast to let you press one button to use multiple different abilities, also something to let you use the same abilitiy (or same base) on different units with one click like Marines/Marauders in SC2

>Mark regions as unpathable for units who dont fit certain movement types

>creating one way pathing blockers, Blizzard cliffs suck to use on most maps but itd be nice to have the functionality of it on manually molded areas

>Recycle unit option, to allow reusing the same unit for later if its trained or summoned of the same unit type, its states are all reset to default in this case (helps with late game lag) or the ability to train units without actually making units, so as to use the UI functionality of training a unit without making a unit.

>Modifying research levels down as they can only be increased, and also changing research descriptions, so you can make systems that simulate having a wide tech tree without actually having a fuckload of researches.

>Custom resources, dont have to have a UI for them below gold/wood as you can use multiboards but having the data inside a units tooltip as well as checking up on it easily seems important. Also some sort of basic return AI for a unit that can be triggered with a picked up custom resource on a physical level (eg, imagine I place a Gem on the field, right click it with a Peasent, he picks it up and brings it next to a Town Hall, the gem is now either placed into the town hall and the player-value of the resource goes up, or the resource is dropped next to the town hall and is marked as in use and the AI ignores it). More easy to use AI modifications seem like a good bet on new functions!

>Building Unit descriptions at run time, by adding things to the beggining or end so you can systematically add, say, keybinds to an ability in any way you want

As for new UI stuff, I think you should look at some things Dawn of War can do (specifically the Ultimate apocalypse mod, because that one has even more but also suggesting this because its fun) as there are some interesting UI functionalities that they have though I cant remember now, might post at some other time.
Speaking of which, does the free space on the sides of the UI have a consistent minimum on all aspect ratios?


Things not trigger related but dont know where to put:
>more floating text
>fix pathing around a cliffless area that has pathing blockers as to stop units from locking on to things on the other side when they cant reach them. Same with waygates
>stackable auras
>simpler unit is in range of another unit style thing to use with auras


EDIT:
Also suggesting
> trigger that applies a certain upgrade to a certain unit type, such as +DMG to all units of a selected unit type, without using tech additions, as well as the option to save the bonus and remove it if need be.
>possibility of making icons/text in a multiboard clickable
 
Last edited:
Level 4
Joined
Jan 27, 2016
Messages
89
>event function: detect sources of healing and of regeneration, and their sources, and modify them.


>turn regions into melee and/or ranged attack blockers, as to stop units attacking up and over custom made hills, by essentially making it so units cant attack over it.

>create a classification dynamically

>add spell directly into spellbook

>better tooltip generation for making new abilities, if I copy something it should change the data refferences to the one of the new ID
 
Last edited:
Level 4
Joined
Jan 27, 2016
Messages
89
>player holds down button for X length, for charged style abilities

>player drags cursor, whether with building to make walls or ability to draw something

>dynamic attack detection and creation

>set bonus region height to make regions in which unit height is always higher

>add terrain filter (basically make terrain in a region filter by a color, say red, locally or globally)

Not a native, but adding a type of pathing tile that just blocks attacks melee or projectile, as to deal with custom terrain
 
Level 4
Joined
May 8, 2016
Messages
58
vJASS:
function SetAbilityManaCost takes integer abilCode, integer manaCost, integer level returns nothing
function GetAbilityManaCost takes 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
 
SetUnitAbilityManaCost
eg: Buff that reduces the mana cost of a friendly caster unit by 50% / Brilliance aura type ability that reduces the mana cost by 20% / debuff that increases mana cost of enemy spells in the area by 100% / etc

SetAbilityManaCost
eg: global event on a scripted map where magic becomes harder to do, increasing mana cost of fire spells by 35%.

That kind of stuff
 
Level 5
Joined
Jun 7, 2012
Messages
66
I need SetAbilityManaCost for using several Channel-based dummy abilities by changing their cooldown, name, description, icon and manacost. Range would also be good together with modifying all ability fields, but let's start with cooldown.
 
Level 2
Joined
Aug 10, 2016
Messages
20
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.
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)
 
Level 4
Joined
Jan 27, 2016
Messages
89
>Change Local Player UI stuff (eg, idle worker icon, the Our Forces are under attack sound, the UI)
>Tooltip stuff such as refresh a tooltip that a player is hovering over or modify it, so you can hold Alt while hovering over it to get more info
>Save as many custom values as needed as theyre much faster to obtain off a unit and,more of an object editor thing but, save as many point values as needed as well,


EDIT:

ALSO
>unit begins being affected/unaffected by an aura (DOESNT MATTER IF IT WAS ALREADY AFFECTED BY IT)
>get number of sources of an aura affecting a unit, for stacking auras.
 
Last edited:
Level 2
Joined
Aug 10, 2016
Messages
20
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?
It isn't difficult to add this functions to GUI manually. If it is necessary, I will do this in future.
Adding locals to GUI is more important thing. Many mapmakers need this opportunity.
 
Level 4
Joined
May 8, 2016
Messages
58
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.

ApplySpellEffectPoint applies such spells as Blizzard, Carrion Swarm, Inferno, Flamestrike. Such spells as Carrion Swarm applies from caster's position at casting point direction.

ApplySpellEffectVector is not required because you probably won't need to cast the spell from nowhere. Otherwise all you need is a single dummy unit (invisible caster) and ApplySpellEffectPoint.

We need an access to more unit fields to change unit's appearance or stats (hp, mana, model, attack type, armor type, etc) as well as buff fields.

And the most important - custom UI API.
 
Last edited:
Status
Not open for further replies.
Top