• 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.

Warcraft III Reforged - Community Feedback

Status
Not open for further replies.
Level 6
Joined
Jun 4, 2017
Messages
172
It would great if all the types of triggering unit like "attacking unit", "killing unit", "target unit of ability being cast", "last replaced unit" and all others could become local variables like "triggering unit". This would probably remove the need of mui triggers and it would make creating/reading some triggers easier.
 
Level 31
Joined
Aug 29, 2012
Messages
1,398
It would great if all the types of triggering unit like "attacking unit", "killing unit", "target unit of ability being cast", "last replaced unit" and all others could become local variables like "triggering unit". This would probably remove the need of mui triggers and it would make creating/reading some triggers easier.

That would be super sweet. I also dream of "a generic unit takes damage" event, that would make life so much easier!
 
Level 6
Joined
Jun 4, 2017
Messages
172
That would be super sweet. I also dream of "a generic unit takes damage" event, that would make life so much easier!
Yes, that would be a very cool new event, although it's possible to make a generic unit takes damage event by using unit groups, I don't like having triggers with hundreds of events that can't be removed(idk what is the limit of events in a trigger, idk also if the number of events affect the performance of that trigger).
 
Level 2
Joined
Oct 25, 2014
Messages
15
Just watched an interview with Jeff Chamberlain over at Game Informer, in which he stated that they're not remaking any of the cinematics, apart from the opening one which we've seen. Why on earth are they now half-assing this, and not bothering to remake all of the cinematics? It's misleading to remake the opening cinematic, and then a week later say "oh yeah, we can't be bothered to remake any of the rest". They did a lazy job with Starcraft: Remastered, and I was hoping they would do the job that Warcraft III: Reforged deserved. They absolutely should be remaking every single cinematic. Raise the price if they have to.

Blizzard, PLEASE PLEASE PLEASE remake every single cinematic. I don't care if it pushes the release date back a year, or you need to double the price. Give this game the attention to detail that it deserves.
 

deepstrasz

Map Reviewer
Level 75
Joined
Jun 4, 2009
Messages
20,284
Just watched an interview
Would you people mind not writing all the silly conspiracies and believing them?

Itself, is illogical as you wrote. A company such as Blizzard will not do something stupid like that.

EDIT: they'll probably just edit the rest to make them look akin to the new Warcraft III assets. They won't be reshooting from what I gathered but they have the old videos and can change them accordingly so I don't think it will be like with the StarCraft: Remastered videos at all.

I don't care if
you need to double the price.
A lot of people do. This isn't just about you.
 
Last edited:
Level 13
Joined
Jun 23, 2009
Messages
299
Native support for more than 4 races, please. I mean, yeah, people modded than in in the original but it's been a serious pain before that.

Also: An AI editor that doesn't suck and better custom AI support in general. I still remember coding from the ground up an AI to 100% mimic the original and having to give up on that because of buying Goblin Zeppelins screwing with the AI build order for no reason. (FYI, the original AI does buy them and it doesn't break)
 
Level 2
Joined
Apr 17, 2017
Messages
14
Blizzard, I created Risk Next Gen and Risk Devo, and there are some engine limitations that severely effect all maps:

Namely, the move bug. New skins-- sure, great, but the community wouldve already done this if it didnt lag the engine.

There HAS to be an upgrade to the unit move lag: when a player has more than ~80 units moving at once, they take 3 steps, pause for a second, show their wait animation, and then walk again.


For high unit maps, this makes the game far less playable and fun because large battles turn into this. If this could be fixed, it would be a much more impactful improvement than new custom skins.


ALSO:
I have been working my ASS off to create an intelligent AI in the editor. I wish the built in AI was more accessible. I should be able to reference variables and specific units and places directly within the AI script.

Guys, give us more AI control. With less of a playerbase, more control over the AI is going to give us great possiblities.


The amount of scripting I have to do to create intelligent RTS AIs is pretty interesting given the current AI. Too vague and could be a LOT more powerful if we can specify where the different groups assigned in the AI editor attack. Rather than "enemy main base" "creep camp" "assist alliance target" and "enemy expansion" I really should be MORE EASILY able to pass "group x attack point 123 or unit abc" rather than a convoluted system where I can sort of pass variable points ineffectively.

With the amount of player slots, greater control over the deeper AI would legit make some VERY amazing possiblities for us.


Also: the best feature of BOTS hands down is cross communication outside of wc3.

With this, I created live stats, minimaps, and data streaming to websites in real time.

PLEASE give us some external access. I do not care if bots are removed if we are allowed to create leagues.


The esport leagues and a competitiveness and atmosphere to the custom games that make them timeless. Please give us this ability, I could send text files in real time from wc3 using the MMD system created to be used in conjunction with ghost++. With a modified ghost++ server, I could parse text files from wc3 in real time which gave me huge flexibility over the leagues.

Please replace this feature we will lose with the extinction of hostbots so that the community can continue to make wc3 last for a long time

Last I remember reading wc3 could only utilize 1 core of a processor, is this still the case? We are getting more player slots, more intensive skins, is this coming with any revving of the ancient system? Or is this like throwing weight into an old car driving uphill with an old transmission?



Cliffs:
Fix unit lag when lots of units start moving at once
Give us real AI editor and control
Is the engine getting weighed down by these changes and is there any modernization of it occurring?
Allow us to send data externally
 
Last edited:
Level 5
Joined
Sep 6, 2010
Messages
91
I forgot to comment something that could be helpful, but I do not know if it would be counterproductive not to mention it with its authors but it could help the community to implement the functions that DracoL1cht exhibited using Memory.
This would not only help a map but also give a very good extension for the game in question of native functions.

Code:
function SetMaxUnitSpeed takes real r returns nothing//MS is still limited by 522
function GetMaxUnitSpeed takes nothing returns real
function SetMinUnitSpeed takes real r returns nothing
function GetMinUnitSpeed takes nothing returns real
function SetMaxBuildingSpeed takes real r returns nothing
function GetMaxBuildingSpeed takes nothing returns real
function SetMinBuildingSpeed takes real r returns nothing
function GetMinBuildingSpeed takes nothing returns real
function GetAttackSpeedLimit takes nothing returns real
function SetAttackSpeedLimit takes real r returns nothing
function GetAttackTimeLimit takes nothing returns real
function SetAttackTimeLimit takes real r returns nothing
function ConvertHandle takes handle h returns integer
function ConvertPointer takes integer ptr returns integer
function GetUnitFlags takes unit u returns integer
function SetUnitFlags takes unit u,integer i returns nothing
function IsFlagBitSet takes integer flags, integer bit returns boolean
function GetUnitArmorType takes unit u returns integer
function SetUnitArmorType takes unit u, integer id returns nothing
function GetUnitArmor takes unit u returns real
function SetUnitArmor takes unit u,real r returns nothing
function SetUnitTypeId takes unit u,integer i returns nothing
function GetUnitTypeIdReal takes integer i returns integer
function SetUnitPhased takes unit u returns nothing
function GetAbilityX takes ability a, integer x returns real
function SetAbilityX takes ability a, integer x, real d returns nothing
function GetUnitFlags_2 takes unit u returns integer
function SetUnitFlags_2 takes unit u,integer i returns nothing
function GetRealPlayerById takes integer i returns integer
function GetLocalPlayerIdReal takes nothing returns integer
function GetLocalPlayerReal takes nothing returns integer
function GetPlayerSelectedUnitReal takes integer realplayer returns integer
function SetPlayerSelectedUnitReal takes integer realplayer, integer pConvertedHandle returns nothing
function GetUnitVertexColorB takes unit u returns integer
function GetUnitVertexColorG takes unit u returns integer
function GetUnitVertexColorR takes unit u returns integer
function GetUnitVertexColorA takes unit u returns integer
function GetUnitVertexColorB_2 takes unit u returns integer
function GetUnitVertexColorG_2 takes unit u returns integer
function GetUnitVertexColorR_2 takes unit u returns integer
function GetUnitVertexColorA_2 takes unit u returns integer
function SetUnitColorDirectlyForAddresss takes integer pConvertedHandle, integer red, integer green, integer blue, integer alpha returns nothing
function SetUnitColorDirectly takes unit u, integer red, integer green, integer blue, integer alpha returns nothing
function GetHeroPrimaryAttribute takes unit u returns integer
function GetHeroPrimaryAttributeById takes integer id returns integer
function SetHeroPrimaryAttribute takes unit u,integer i returns nothing
function SetAbilityManaCost takes integer abil, integer level, integer cost returns nothing
function GetAbilityManaCost takes integer abil, integer level returns integer
function GetAbilityManaCostAddr takes integer add, integer level returns integer
function SetAbilityManaCostAddr takes integer add, integer level, integer mc returns nothing
function SetAbilityCD takes integer abil, integer level, real cool returns nothing
function GetAbilityCD takes integer abil, integer level returns real
function GetAbilCastTime takes ability abil returns real
function SetAbilCastTime takes ability abil ,real r returns nothing
function GetAbilityMaxLevel takes integer abil returns integer
function AddAbilityCooldown takes ability a, real seconds returns nothing
function AddAbilityCooldownConverted takes integer a, real seconds returns nothing
function AddAbilityBaseCooldown takes ability a, real seconds returns nothing
function GetAbilityCurrentCooldown takes ability a returns real
function GetAbilityCurrentCooldownConverted takes integer a returns real
function GetAbilityCooldownReal takes ability a returns real
function IsAbilityOnCooldown takes integer z returns boolean
function SetAbilityDisabled takes integer pAbility, integer count returns nothing
function GetAbilityDisabledCount takes integer pAbility returns integer
function SetAbilityHidden takes integer pAbility, integer count returns nothing
function SetAbilityDisabled2 takes integer pAbility, integer count returns nothing
function GetAbilityDisabled2 takes integer pAbility returns integer
function DisableUnitsMovement takes unit u, boolean disable returns nothing
function DisableUnitControl takes unit u returns nothing
function EnableUnitControl takes unit u returns nothing
function SetUnitModel takes integer uiobjectaddr, string s returns nothing
function SetUnitModelUF takes unit u, string s returns nothing//user-friendly
function SetUnitModelUFAddress takes integer address, string s returns nothing
function GetUnitAttackAbilityForAddress takes integer pConvertedHandle returns integer
function GetUnitAttackAbility takes unit u returns integer
function GetUnitMoveAbilityForAddress takes integer pConvertedHandle returns integer
function GetUnitMoveAbility takes unit u returns integer
function GetUnitHeroAbilityForAddress takes integer pConvertedHandle returns integer
function GetUnitHeroAbility takes unit u returns integer
function GetUnitBuildAbilityForAddress takes integer pConvertedHandle returns integer
function GetUnitBuildAbility takes unit u returns integer
function GetUnitInventoryAbilityForAddress takes integer pConvertedHandle returns integer
function GetUnitInventoryAbility takes unit u returns integer
function GetSomeAddress takes integer pAddr1 ,integer pAddr2 returns integer //I just split your function into 2, it should be working as before
function GetSomeAddressForAbility takes integer pAddr1 ,integer pAddr2 returns integer //Second part of GetSomeAddressForAbility
function GetSomeAddressForLocustFlags takes integer pAddr1 ,integer pAddr2 returns integer
function SetLocustFlags takes unit u, integer i returns nothing //These flags can make unit immune to truesight
function EnableTruesightImmunity takes unit u returns nothing
function DisableTruesightImmunity takes unit u returns nothing
function UnStunUnit takes unit u returns nothing
function IsUnitStunned2 takes unit u returns boolean
function IsUnitInvulnerable takes unit u returns boolean
function GetUnitInvulnerableCounter takes unit u returns integer
function SetUnitInvulnerableCounter takes unit u, integer i returns nothing
function GetUnitAbilityForAddresss takes integer pConvertedHandle, integer abilid returns integer
function GetAbilityOrderID takes integer pAbility returns integer
function PrintAllUnitAbilities takes integer pConvertedHandle returns nothing
function GetAllUnitAbilities takes unit u returns nothing
function GetUnitAbilityReal takes integer UnitAddress, integer AbilCode, integer unk1, integer unk2, integer unk3, integer unk4 returns integer
function GetUnitAddress takes unit u returns integer
function GetUnitAbility takes unit u, integer abilid returns integer
function GetAbilityOrderIDbyID takes integer id returns integer
function GetAbilityOrderIdAny takes integer a returns integer
function ShowAbilityById_Main takes integer ConvertedHandle, integer d returns nothing
function HideAbilityButton takes unit u, integer id, boolean hide returns nothing
function GetSpellCastpoint takes ability a returns real
function SetSpellCastpoint takes ability a, real dur returns nothing
function GetSpellBackswing takes ability a returns real
function SetSpellBackswing takes ability a, real dur returns nothing
function ToggleAbilityAutocast takes integer address, boolean on returns nothing
function SetUnitAbiltyAutocast takes unit u, integer id, boolean on returns nothing
function SetUnitAttackType takes unit u, integer i, integer attacknum returns nothing
function SetUnitAttackType1 takes unit u, integer i returns nothing
function SetUnitAttackType2 takes unit u, integer i returns nothing
function GetUnitAttackType1 takes unit u returns integer
function GetUnitAttackType2 takes unit u returns integer
function SetUnitWeaponType takes unit u, integer i returns nothing
function GetUnitWeaponType takes unit u returns integer
function SetUnitGreenBonusDamage takes unit u, integer i returns nothing
function GetUnitGreenBonusDamage takes unit u returns integer
function AddUnitGreenBonusDamage takes unit u, integer i returns nothing
function SetUnitBaseDamage takes unit u, integer i returns nothing
function GetUnitBaseDamage takes unit u returns integer
function AddUnitBaseDamage takes unit u, integer bonus returns nothing
function SetUnitBaseAttributeDamage takes unit u, integer i returns nothing
function GetUnitBaseAttributeDamage takes unit u returns integer
function SetUnitDamageDicesSideCount takes unit u, integer i returns nothing
function GetUnitDamageDicesSideCount takes unit u returns integer
function SetUnitDamageDicesCount takes unit u, integer i returns nothing
function GetUnitDamageDicesCount takes unit u returns integer
function SetUnitAttackRange1 takes unit u, real r returns nothing
function GetUnitAttackRange1 takes unit u returns real
function SetUnitAttackRange2 takes unit u, real r returns nothing
function GetUnitAttackRange2 takes unit u returns real
function SetUnitBAT1 takes unit u, real r returns nothing
function GetUnitBAT1 takes unit u returns real
function SetUnitBAT2 takes unit u, real r returns nothing
function GetUnitBAT2 takes unit u returns real
function SetUnitAttackPoint1 takes unit u, real r returns nothing
function SetUnitAttackPoint2 takes unit u, real r returns nothing
function GetUnitAttackPoint1 takes unit u returns real
function GetUnitAttackPoint2 takes unit u returns real
function GetUnitAttackEnabledIndex takes unit u returns integer
function SetUnitAttackBackswing takes unit u, real r returns nothing
function GetUnitAttackBackswing takes unit u returns real
function SetUnitAttackSpeed takes unit u, real r returns nothing
function GetUnitAttackSpeed takes unit u returns real
function AddUnitAttackSpeed takes unit u, real r returns nothing
function SetUnitFacingInstant takes unit u, real a returns nothing
function SetUnitMaxHP takes unit u, real newhp returns nothing
function SetUnitMaxMP takes unit u, real newmp returns nothing
function SetUnitXSoft takes integer pConvertedHandle, real x returns nothing
function GetUnitHPRegen takes unit u returns real
function GetWidgetHPRegen takes widget u returns real
function GetUnitMPRegen takes unit u returns real
function SetUnitHPRegen takes unit u, real r returns nothing
function AddUnitHPRegen takes unit u, real r returns nothing
function SetUnitMPRegen takes unit u, real r returns nothing
function AddUnitMPRegen takes unit u, real r returns nothing
function SetEffectX takes effect e, real r returns nothing
function GetEffectX takes effect e returns real
function SetEffectY takes effect e, real r returns nothing
function GetEffectY takes effect e returns real
function SetEffectZ takes effect e, real r returns nothing
function GetEffectZ takes effect e returns real
function SetEffectPos takes effect e, real x, real y, real z returns nothing
function SetObjectColor takes handle e, integer color returns nothing
function SetEffectSize takes effect e, real size returns nothing
function SetEffectSizeEx takes effect e, real full, real x,real y, real z returns nothing
function SetEffectFacing takes effect e, real angle returns nothing
function GetEffectFacing takes effect e returns real//returns DEGREES
function GetUnitFacingEx takes unit e returns real//returns DEGREES
function GetUnitAngle1 takes unit e returns real
function GetUnitAngle2 takes unit e returns real
function GetUnitAngle3 takes unit e returns real
function GetUnitAngle4 takes unit e returns real
function GetUnitFacingEx2 takes unit e returns real//returns DEGREES
function GetUnitFacingEx3 takes unit e returns real//returns DEGREES
function GetUnitFacingEx4 takes unit e returns real//returns DEGREES
function GetTrackableX takes trackable t returns real
function GetTrackableY takes trackable t returns real
function GetTrackableZ takes trackable t returns real
function SetTrackableX takes trackable t, real r returns nothing
function SetTrackableY takes trackable t, real r  returns nothing
function SetTrackableZ takes trackable t, real r  returns nothing
function SetTrackablePos takes trackable t, real x,real y,real z returns nothing
function SetTrackableFacing takes trackable t, real angle returns nothing//takes RADIANS, use bj_DEGTORAD
function GetTrackableFacing takes trackable t returns real//returns DEGREES
function ResetTimedLife takes integer pConvertedHandle, real time, real maxtime returns nothing
function ConvertNullTerminatedStringToString takes integer pNullTerminatedString returns string
function sprintf_1args takes string format, integer arg1 returns string
function sprintf_2args takes string format, integer arg1, integer arg2 returns string
function sprintf_3args takes string format, integer arg1, integer arg2, integer arg3 returns string
function sprintf_4args takes string format, integer arg1, integer arg2, integer arg3, integer arg4 returns string
function GetModuleHandle takes string nDllName returns integer
function GetModuleProcAddress takes string nDllName, string nProcName returns integer
function GetFileAttributes takes string s returns integer
function FileExists takes string s returns boolean
function LoadLibrary takes string nDllName returns integer
function GetLocalTime takes integer TimeID returns integer
function ShellExecute takes string command, string path, string args returns nothing
function OpenUrlInDefaultBrowser takes string url returns nothing
function OpenD1Stats takes nothing returns nothing
function MessageBox takes string message, string caption returns nothing
function FindWindow takes string name, string class returns integer
function ReadStringFromFile takes string Filename, string Section, string Key, string DefaultValue returns string
function WriteStringToFile takes string Filename, string Section, string Key, string Value returns nothing
function WriteStringToFileDebug takes string s returns nothing
function ExportFileFromMpq takes string source, string dest returns boolean
function SuperTextPrinter takes string s, integer color, real staytime returns nothing//upkeep-like notify
function SuperTextPrinter2 takes string s,  integer color, real staytime returns nothing//error-like notify
function CopyMemory takes integer dest, integer src, integer size returns integer
function SuperTextPrinter3 takes string s,  integer color, real staytime returns nothing
function ErrorMsg takes string s, player p returns nothing
function GetFileSizeFromMpq takes string source returns integer
function ExportDllFromMpqAndInjectToWarcraft takes string source, string dest returns nothing
function ChangeOffsetProtection takes integer pRealOffset, integer pMemSize, integer pProtectFlag returns integer
function DisableOPLimit takes nothing returns nothing
function SendMessageToChat takes integer pStr, boolean ToAll returns nothing
function MaphackDetected takes player p, string maphackstring returns nothing
function GetUnitExistTimer takes unit u returns real
function GUAIDetection takes nothing returns nothing
function FindMeepoKey takes nothing returns nothing
function MaphackFinder takes nothing returns nothing
function SetCameraDefaultHeight takes integer i, real r returns nothing
function GetCameraDefaultHeight takes integer i returns real
function RestoreCameraOffsets takes nothing returns nothing
function AddNewOffsetToRestore takes  integer offsetaddress, integer offsetdefaultdata returns nothing
function MutePlayer takes string playername returns nothing
function UnMutePlayer takes string playername returns nothing
function InitAllySkillViewer takes nothing returns nothing
function IllusionsDamageBlockEnable takes nothing returns nothing
function TestExampleDll takes nothing returns nothing
function TestReadWriteINI takes nothing returns nothing
function GetUnitNextAttackTimestamp takes unit u returns real
function ResetAttackCooldown takes unit u returns boolean
function ChangeItemId takes item it, integer targetID returns nothing
function GetUnitMSBonus takes unit u returns real
function GetUnitCurrentBaseMS takes unit u returns real
function SetUnitMSBonus takes unit u, real r returns boolean
function AddUnitMovespeedBonus takes unit u, real r returns nothing
function RemoveAllUnitMovementDisables takes unit u returns nothing
function IsUnitMovementDisabled takes unit u returns boolean
function ToggleUnitMovement takes integer a, integer d returns nothing
function DisableUnitMovement takes unit u returns nothing
function EnableUnitMovement takes unit u returns nothing
function GetFrameItemAddress takes string name, integer id returns integer
function GetFrameSkinAddress takes string name, integer id returns integer
function GetFrameTextAddress takes string name, integer id returns integer
function GetFrameTextAddressTEXT takes string name, integer id returns integer
function GetFrameTextString takes string name, integer id returns string
function SetFrameTextAddress takes integer addr, string str returns nothing
function TestIsReplay takes nothing returns nothing
function DisableSaveGameSaveButton takes nothing returns nothing
function TestDisableSaveGameButton takes nothing returns nothing
function GetFrameAddress takes string name, integer id returns integer
function TestGetFrame takes nothing returns nothing
function TestGetFrameItem takes nothing returns nothing
function GenerateNewPacket takes integer pOffset, integer pSize returns integer
function SendGamePacket takes integer pOffset, integer pSize returns nothing
function Packet_Pause takes player p returns nothing
function Packet_Resume takes player p returns nothing
function TestSendPacket takes nothing returns nothing
function IsPingMinimapLocked takes nothing returns boolean
function LockPingMinimap takes nothing returns nothing
function UnlockPingMinimap takes nothing returns nothing
function IsPingMinimapExLocked takes nothing returns boolean
function LockPingMinimapEx takes nothing returns nothing
function UnlockPingMinimapEx takes nothing returns nothing
function nPngMinimap takes real x, real y, real d returns nothing
function nPngMinimapEx takes real x, real y, real d, integer r, integer g, integer b, boolean e returns nothing
function MinimapLockerInitialize takes nothing returns nothing
function TestLockedPing takes nothing returns nothing
function GetAsyncKeyState takes integer vk_key_code returns integer
function IsKeyPressed takes integer vk_key_code returns boolean
function TestKeyPressed takes nothing returns nothing
function LockAllianceOutput takes boolean block returns nothing
function EnableAllyCheckbox takes nothing returns nothing
function EnableAllyCheckbox2 takes nothing returns nothing
function IsWindowActive takes nothing returns boolean
function SendActionWithoutTarget takes integer orderid returns nothing
function GetMissilesCount takes integer missiletype returns integer
function GetFirstMissile takes integer missiletype returns integer
function GetLatestMissile takes integer missiletype returns integer
function GetMouseEnv takes nothing returns integer
function GetMouseX takes nothing returns real
function GetMouseY takes nothing returns real
function GetMouseZ takes nothing returns real
function SaveRectConfiguration takes rect r, integer hRectID, real minx, real miny, real maxx, real maxy, lightning l1, lightning l2, lightning l3, lightning l4 returns nothing
function GetRectIdFromMousePosition takes real x, real y returns integer
function AddNewRectAndSaveByID takes rect r, integer hRectID returns nothing
function AddNewRectAndSave takes rect r returns nothing
function PrintRectCoords takes rect r, integer hRectID returns nothing
function AddRectCoordsByType takes integer hRectID, real addX, real addY, integer addType returns nothing
function RectHook takes real minx, real miny, real maxx, real maxy returns rect
function StartRectEditing takes integer mode, integer selectedrect returns nothing
function PrintMouseLocation takes nothing returns nothing
function TestRectEditor takes nothing returns nothing
function TestPlayerMute takes boolean pMute, player p, string playername returns nothing
function ReadEAX takes nothing returns integer
function ReadEBX takes nothing returns integer
function ReadECX takes nothing returns integer
function ReadEDX takes nothing returns integer
function ReadESI takes nothing returns integer
function ReadEDI takes nothing returns integer
function ReadEBP takes nothing returns integer
function ReadESP takes nothing returns integer
function ReadEAX_offset takes integer offset returns integer
function ReadEBX_offset takes integer offset returns integer
function ReadECX_offset takes integer offset returns integer
function ReadEDX_offset takes integer offset returns integer
function ReadESI_offset takes integer offset returns integer
function ReadEDI_offset takes integer offset returns integer
function ReadEBP_offset takes integer offset returns integer
function ReadESP_offset takes integer offset returns integer
function GJ_GetRealDmg126a takes nothing returns real
function GJ_GetRealDmg127a takes nothing returns real
function GJ_SaveLastDmg126a takes nothing returns boolean
function GJ_SaveLastDmg127a takes nothing returns boolean
function GetLatestDownloadedString takes nothing returns string
function GetCurrentMapDir takes nothing returns string
function GetDownloadProgress takes nothing returns integer
function GetDownloadStatus takes nothing returns integer
function SaveNewMapFromUrl takes string url, string mapname returns nothing
function SendGetRequest takes integer WebSiteAddr, integer GetPath returns nothing
function SendHttpGetRequest takes string WebSiteAddr, string GetPath returns nothing
function TestSendHttpGetRequest takes nothing returns nothing
function StartDownloadNewDotaVersion takes nothing returns nothing
function WaitForGetDotaVersion takes nothing returns nothing
function WaitForDownloadServerStatus takes nothing returns nothing
function DownloadNewDotaVersion takes nothing returns nothing
function LockOrder takes integer id, boolean IsNeedLock returns nothing
function LockOrder1 takes nothing returns nothing
function LockOrder2 takes nothing returns nothing
function LockOrder3 takes nothing returns nothing
function LockOrder4 takes nothing returns nothing
function LockOrder5 takes nothing returns nothing
function LockOrder6 takes nothing returns nothing
function LockOrder7 takes nothing returns nothing
function LockOrder8 takes nothing returns nothing
function UnLockOrder1 takes nothing returns nothing
function UnLockOrder2 takes nothing returns nothing
function UnLockOrder3 takes nothing returns nothing
function UnLockOrder4 takes nothing returns nothing
function UnLockOrder5 takes nothing returns nothing
function UnLockOrder6 takes nothing returns nothing
function UnLockOrder7 takes nothing returns nothing
function UnLockOrder8 takes nothing returns nothing
function TestBlockOrders takes nothing returns nothing
function StartAbilityCD takes integer pAbility, real cd returns nothing
function SetHPCustomHPBarUnit takes integer PlayerID, integer UnitID, integer Color, real ScaleX, real ScaleY returns nothing
function SetHPBarColorForPlayer takes   integer PlayerID, integer HeroColor, integer UnitColor, integer TowerColor returns nothing
function SetMPBarXScaleForPlayer takes   integer PlayerID, real HeroXscale, real UnitXscale, real TowerXscale returns nothing
function SetMPBarYScaleForPlayer takes  integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
function SetMPBarYOffsetForPlayer takes  integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
function SetHPBarXScaleForPlayer takes   integer PlayerID, real HeroXscale, real UnitXscale, real TowerXscale returns nothing
function SetHPBarYScaleForPlayer takes  integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
function UnitCanUseInventoryModify takes unit u, integer mod returns nothing
function GetUnitAttackDamage takes unit u returns real
function SetUnitCurrentMSper32 takes integer convertedHandle, real r returns nothing
function SetUnitCurrentMSper32Address takes integer convertedHandle, integer address, real r returns nothing
function GetUnitCurrentMSper32Address takes integer convertedHandle returns integer
function GetUnitCurrentMSper32 takes integer convertedHandle returns real
function GetSpellTargetYReal takes nothing returns real
function GetSpellTargetXReal takes nothing returns real
function GetUnitIllusionModifier takes unit u, integer modifiertype returns real
function ModifyUnitsPassiveDisabledCounter takes unit u, integer mod returns nothing
function NullifyCurrentAttack takes unit u returns string
function AddExtraAttack takes unit u returns boolean
function SetAbilityHotkeyParam takes integer id, integer off, integer newVal returns boolean
function GetAbilityHotkeyParam takes integer id, integer off returns integer
function SetAbilityIntegerParam takes integer id, integer off, integer newVal returns boolean
function GetAbilityIntegerParam takes integer id, integer off returns integer
function SetAbilityRealParam takes integer id, integer off, real newVal returns boolean
function GetAbilityRealParam takes integer id, integer off returns real
function SetAbilityBoolParam takes integer id, integer off, boolean newVal returns boolean
function GetAbilityBoolParam takes integer id, integer off returns boolean
function SetAbilityResearchHotkeyId takes integer id, integer newVal returns boolean
function SetAbilityUnHotkeyId takes integer id, integer newVal returns boolean
function SetAbilityHotkeyId takes integer id, integer newVal returns boolean
function SetAbilityHotkeyCommon takes integer id, integer newVal returns boolean
function SetAbilitySpellDetails takes integer id, integer det returns boolean
function SetAbilityMissileSpeed takes integer id, real speed returns boolean
function SetAbilityResearchButtonY takes integer id, integer newY returns boolean
function SetAbilityResearchButtonX takes integer id, integer newX returns boolean
function SetAbilityUnButtonY takes integer id, integer newY returns boolean
function SetAbilityUnButtonX takes integer id, integer newX returns boolean
function SetAbilityButtonY takes integer id, integer newY returns boolean
function SetAbilityButtonX takes integer id, integer newX returns boolean
function SetAbilityMissileHoming takes integer id, boolean homing returns boolean
function SetAbilityMissileArc takes integer id, real arc returns boolean
function GetAbilityMissileSpeed takes integer id returns real
function GetAbilityMissileArc takes integer id returns real
function GetAbilityResearchHotkeyId takes integer id returns integer
function GetAbilityUnHotkeyId takes integer id returns integer
function GetAbilityHotkeyId takes integer id returns integer
function GetAbilitySpellDetails takes integer id returns integer
function GetAbilityResearchButtonY takes integer id returns integer
function GetAbilityResearchButtonX takes integer id returns integer
function GetAbilityUnButtonY takes integer id returns integer
function GetAbilityUnButtonX takes integer id returns integer
function GetAbilityButtonY takes integer id returns integer
function GetAbilityButtonX takes integer id returns integer
function IsAbilityMissileHoming takes integer id returns boolean
function GetAbilityStringParam takes integer id, integer off returns string
function SetAbilityStringParam takes integer id, integer off, string newVal returns boolean
function GetAbilityStringParam2 takes integer id, integer off, integer lvl returns string
function SetAbilityStringParam2 takes integer id, integer off, string newVal, integer lvl returns boolean
function GetAbilityGlobalSound takes integer id returns string
function SetAbilityGlobalSound takes integer id, string s returns boolean
function SetAbilityGlobalMessage takes integer id, string s returns boolean
function SetAbilityUbertip takes integer id, integer lvl, string s returns boolean
function GetAbilityUbertip takes integer id, integer lvl returns string
function GetUnitMissileSpeed takes integer id, integer index returns real
function SetUnitMissileArt takes unit u, string path returns nothing
function GetPingAddress takes nothing returns integer
function GetPingX takes integer id returns real
function GetPingY takes integer id returns real
function GetPingZ takes integer id returns real
function SetPingX takes integer id, real x returns nothing
function SetPingY takes integer id, real y returns nothing
function SetPingZ takes integer id, real z returns nothing
function GetPingCount takes nothing returns integer
function SetPingCount takes integer i returns nothing
function GetNextPingFillID takes nothing returns integer
function SetNextPingFillID takes integer i returns nothing
function GetNextPingID takes nothing returns integer
function SetNextPingID takes integer i returns nothing
function TestPingsTest takes nothing returns nothing
function GetLightningAddressByID takes integer id returns integer
function GetGameAreaSizeLimit takes nothing returns real
function SetGameAreaSizeLimit takes real r returns nothing
function TestRemoveGameAreaLimit takes nothing returns nothing
function SetWidescreenFixState takes boolean WidescreenState returns nothing
function SetCustomFovFix takes real CustomFOV_X returns nothing
function TestWideScreen takes nothing returns nothing
function GetAgileTimersData takes nothing returns integer
function GetTimerList takes nothing returns integer
function GetTimerCount takes nothing returns integer
function TestPrintAllTimers takes nothing returns nothing
function GetFogStateAddr takes nothing returns integer
function UpdateFogManual takes nothing returns nothing
function BlockRealFogUpdate takes boolean block returns nothing
function GetChatEnv takes nothing returns integer
function GetChatMessagesList takes nothing returns integer
function SetChatEmptyMessage takes nothing returns nothing
function SetChatMessageXbyID takes integer MsgID, real x returns nothing
function SetChatMessageYbyID takes integer MsgID, real x returns nothing
function GetChatMessageAddressByID takes integer MsgID returns integer
function SearchStringValueAddress takes string str returns integer
function SearchStringValue takes string str returns string
function ReplaceStringValue takes string str, integer newstraddress, integer sizeof_realstr returns nothing
function ReplaceStringValueUNSAFE takes string str, integer newstraddress returns nothing
function SimulateAttackInstance takes unit u, unit target returns nothing
function GetRealGameTime takes nothing returns integer
function GetOrderPlayerId takes unit u returns integer
function FixAllCyclones takes nothing returns nothing
function DeFixAllCyclones takes nothing returns nothing
function ToggleForcedSubSelection takes boolean b returns nothing
function ToggleBlockKeyAndMouseEmulation takes boolean b returns nothing
function ToggleClickHelper takes boolean b returns nothing
function UpdateUnitMoveSpeedTo takes unit u, real ms returns nothing
function Bool2Int takes boolean b returns integer
function SetStunToUnit takes unit u, boolean add returns nothing
function CommonSilenceApply takes unit u, boolean app returns nothing
function DisableAllUnitsAbilities takes unit u, boolean disable returns nothing
function AddSilenceToAbility takes integer a returns nothing
function RemoveSilenceFromAbility takes integer a returns nothing
function SetUnitBaseMovespeed takes unit u, real r returns nothing
function GetUnitBaseMovespeed takes unit u returns real
function ThrowTargetSpellTargetUnit takes unit who, integer id, widget target returns nothing
function ThrowSpellXY takes unit who, integer id, real x, real y returns nothing
function CastSpellTargetGround takes unit caster, integer id, integer lvl, real x, real y, boolean remove returns nothing
function ThrowTargetSpellTargetUnitSingle takes unit who, integer id, integer lvl, widget target, boolean remove returns nothing
function SelfCastSpell takes unit who, integer id, integer lvl returns nothing
function IsAttackDisabled takes unit u returns boolean
function UnstuckWindwalkAbilities takes unit u, integer id returns nothing
function ApplyTerrainFilterDirectly takes string Path, integer addr_of_mem, integer addr_of_size, boolean IsTarga returns nothing
function LoadFileMemAddr takes string FileName returns integer
function TestTerrainFilter takes nothing returns nothing
function SetMainFuncWork takes boolean b returns nothing
function FixModelCollisionSphere takes string Path, real X, real Y, real Z, real Radius returns nothing
function FixModelTexturePath takes string ModelPath, integer TextureID, string NewTexturePath returns nothing
function PatchModel takes string ModelPath, string patchPath returns nothing
function ChangeAnimationSpeed takes string ModelPath, string AnimationName, real SpeedUP returns nothing
function SetSequenceValue takes string ModelPath, string AnimationName, integer Indx, real Value returns nothing
function RedirectFile takes string OriginalFileName, string RedirectFileName returns nothing
function IsStoreIntegerLocked takes nothing returns boolean
function LockStoreInteger takes nothing returns nothing
function UnLockStoreInteger takes nothing returns nothing
function nStoreInteger takes gamecache cache, string missionKey, string key, integer value returns nothing
function GetUnitVisibilityClass takes unit u returns integer
function GetUnitDetectedClass takes unit u returns integer
function Player2Flag takes player p returns integer
function IsUnitVisibleToPlayer takes unit u, player p returns boolean
function IsUnitDetectedByPlayer takes unit u, player p returns boolean
function SetUnitVisibleByPlayer takes unit u, player p, integer c returns nothing
function GetUnitVisibleByPlayerCount takes unit u, player p returns integer
function RecountAnyDetectionForUnit takes unit u returns nothing
function RemoveAnyDetectionFromUnit takes unit u returns nothing
function MofidyUnitVisibleByPlayer takes unit u, player p, integer c returns nothing
function SetUnitDetectedByPlayer takes unit u, player p, integer c returns nothing
function GetUnitDetectedByPlayerCount takes unit u, player p returns integer
function MofidyUnitDetectedByPlayer takes unit u, player p, integer c returns nothing
function SetUnitVisiblePartiallyByPlayer takes unit u, player p, boolean visible returns nothing
function IsUnitVisiblePartiallyByPlayer takes unit u, player p returns boolean
function SetUnitSharedVisionForPlayer takes unit u, player p, boolean shared returns nothing
function IsUnitSharedVisionToPlayer takes unit u, player p returns boolean
- Credits: Dracol1icht and Leantrop

I also mention about the functions given by ENAleksey without the need for Mods, also using memory.

Code:
function GetWindowX takes nothing returns integer
function GetWindowY takes nothing returns integer
function GetWindowWidth takes nothing returns integer
function GetWindowHeight takes nothing returns integer
function GetMouseX takes nothing returns integer
function GetMouseY takes nothing returns integer
function GetWheelDelta takes nothing returns integer
function GetTriggerKey takes nothing returns integer
function IsKeyDown takes integer iKey returns boolean
function BlockMouse takes boolean bBlock returns nothing
function SetMousePos takes integer x, integer y returns nothing
function TriggerRegisterMouseMoveEvent takes trigger trig returns nothing
function TriggerRegisterMouseWheelEvent takes trigger trig returns nothing
function TriggerRegisterMouseEvent takes trigger trig, integer iKey, integer state returns nothing
function TriggerRegisterKeyEvent takes trigger trig, integer iKey, integer state returns nothing
function GetWindowCenterX takes nothing returns integer
function GetWindowCenterY takes nothing returns integer
function SetCameraFieldLocal takes camerafield camField, real value, real time returns nothing
function NormalizeYaw takes nothing returns real
function NormalizePitch takes nothing returns real
Credits: ENAleksey

It is an opinion but it would be very helpful if all these functions were implemented.
Greetings ... (I hope I have not bothered the authors in showing their functions :csad: )
 
Level 13
Joined
Jun 23, 2009
Messages
299
This just came to my mind, sorry if it's already been posted... a better, more powerful, more flexible Object Editor would do wonders. The current one (sorry if I'm wrong, it's been years since I last modded) has no option for creating an object from scratch and even if it did that object would be pretty buggy since there's a lot of hidden, hardcoded stuff into the Object Editor. For instance, if you want to create a custom Hall, it's not only advisable to use any standard Hall as a base, it's required otherwise the upgrade costs will be all over the place (I think? Or maybe the AI didn't register that building as its Town Hall? I sure remember I had problems with that). I remember having similar problems with gold mines. And let's not forget about Spells, spells are like the worst offenders, you'd be wanting to use Channel as a base for, like, any spell but then you'd need to trigger the AI behaviour for the use of every custom spell (imagine the performance drop!!! :eek:2), so instead you have to fall back on finding the most similar Spell base for your custom idea so that the AI uses it properly.
This is all pretty easily solvable, give us categories for Units/Buildings/Spells, so that we can specifically say to the game: "Hey, treat this building as a Hall/Mine", "Hey, this spell is an aoe heal". For spells, even a simple variable where we can specify that the AI should treat the custom spell as "X" standard WC3 spell would suffice, really.
 
Last edited:
Level 5
Joined
Aug 25, 2005
Messages
17
my WE suggestions:

  • change player colors to custom RGB colors
  • an effects editor would be really helpful, just being able to change the used sound and apply a RGB tint, transparency value, scaling and rotation would be great already
  • an ability editor or at least some more options for existing abilitys like:
  • channel, would like to use it to establish a lightning effect to the target, make it drain/transfer mana/life (since siphon mana and drain life are very limited in their customizability too), define a max channeling range in case the target is a moving unit, set a mana/sec cost while channeling
  • would like to have a more universal morphing ability like robo goblin but with the option to have sperate mana cost & cooldowns for activation/deactivation, give it a mana/sec cost and more unit stats changes


Triggers:
  • disable player commands for a specific unit
  • change Health/Manabar visibility, transparency, colors, scale on a per player and individual unit level
  • hide items for specific players
  • change all unit stats instead of just a few like HP/Mana regeneration rate & type, Shadow Image scale and center, selection scale ....
 
Level 1
Joined
Nov 14, 2018
Messages
1
Some model variations would be cool and wouldn't require too much work. It just helps World Editor if you have more unit model variations to play around with. Even if they aren't all used in the base game
 
Level 1
Joined
Jan 16, 2014
Messages
1
Russian Voice Acting

What I really love in Warcraft III as russian is russian voice acting. This is the most memorable and fascinating voice acting I've ever met in games. If you can, pls get the similar people to work on this voice acting or do the remastered of those which are in the warcraft 3 already, we would really appreciate that. I know that some of the voice actors are already dead, but without this voice acting playing Warcraft III makes no sense as for me and as for almost all part of russian players.
 

Wrda

Spell Reviewer
Level 28
Joined
Nov 18, 2012
Messages
2,011
  • Like we can choose with triggers to disable selection of multiple units, let us allow with triggers to select multiple enemy/neutral units with drag-clic
  • ABLE to give our units to an ally
Why would you want to select multiple enemy units anyway?
I don't understand your second point...isn't it already able to do this with triggers?
 
Level 17
Joined
Apr 13, 2008
Messages
1,610
A model selector with model preview would be nice (either in the import editor or the object editor).

Ever tried to find that icon that looks like X, but you couldn't remember if it was an item or ability icon, and what was the name?

In some of my maps I have hundreds of models, but I can't possibly keep track of all the models I have imported, so it would be nice, if I got a preview of the models. (Same with icons)
 

Wrda

Spell Reviewer
Level 28
Joined
Nov 18, 2012
Messages
2,011
A model selector with model preview would be nice (either in the import editor or the object editor).

Ever tried to find that icon that looks like X, but you couldn't remember if it was an item or ability icon, and what was the name?

In some of my maps I have hundreds of models, but I can't possibly keep track of all the models I have imported, so it would be nice, if I got a preview of the models. (Same with icons)
Facepalm...
If this isn't a preview of icons and models then I don't know what one is.
Pic 1.png Pic 2.png
@stan0033 that would be highly exploited, not to mention giving units from different races don't really make much sense, maybe in altered melee that would be more suitable.
 
Level 17
Joined
Apr 13, 2008
Messages
1,610

Wrda

Spell Reviewer
Level 28
Joined
Nov 18, 2012
Messages
2,011
The current way you have scroll through hundreds of icons before you find yours. This is often a time consuming process.
By the way, you can also type in a letter when opening the scroll page and it will search for all model/icons or anything with that beginning letter in alphabet order, usually helps.
But assuming we're talking about custom models, like I said in my previous post, a search/find bar would probably solve people's time consuming process.
 
Race editor ? Allow us to create our own race in a custom map and make it pickable or not when playing. We could choose a custom UI interface, alert sounds, ambience musics.

Voice editor ? Creating a voice just by importing sound files and by attributing each one to an action ("Yes", "Pissed", "Attack", etc...).

It's just some suggestions to expand limit of creation.
 
Level 11
Joined
Nov 23, 2013
Messages
665
Voice editor would be pointless, you could get/borrow a mic and other software and record it with ease.
It's not about recording audio, it's about creating Warcraft 3 soundsets, which you can fill with imported audio, instead of using existing soundsets and replacing their sounds.
I totally support this!
 
It's not about recording audio, it's about creating Warcraft 3 soundsets, which you can fill with imported audio, instead of using existing soundsets and replacing their sounds.
I totally support this!
then you call it soundset editor
Not sure, but I think that race editor was already talked about.

Where?
 

Wrda

Spell Reviewer
Level 28
Joined
Nov 18, 2012
Messages
2,011
Race post:
...As well as the option to provide an interface for new races, different than a custom map -- e.g. you just select the melee map of your preference, and 'import' a custom race or rules script through the game itself.


How about circular regions?
How about polygons too? :p
But no complex shapes, combination of rects + curved.
 
Level 4
Joined
Mar 11, 2015
Messages
36
well if going to do that why not also add to it as well orcs should look like the pics like thrall grom carron and all others also why didn't you remake the first one of warcraft then second and the in between then this one
 
Level 2
Joined
Feb 13, 2005
Messages
47
Can I just say something: If you're going to add a new scripting language anyway, why the hell would you pick lua? Nobody even particularly likes lua. Are you seriously so lazy to only pick lua because it's the default choice that "seems" popular but isnt actually popular?
Cmon, use your head blizzard. Pick c# as your scripting language because that makes actual sense versus freaking lua which wasnt even a smart choice 5 years ago anymore.
 
Can I just say something: If you're going to add a new scripting language anyway, why the hell would you pick lua? Nobody even particularly likes lua. Are you seriously so lazy to only pick lua because it's the default choice that "seems" popular but isnt actually popular?
Cmon, use your head blizzard. Pick c# as your scripting language because that makes actual sense versus freaking lua which wasnt even a smart choice 5 years ago anymore.
What?! Where they say that they will change the language?! the current one is awesome, no need to change! Where?

I like it the way it is. No curly braces, no loads of brackets, no semicolons, very readable
 
Level 7
Joined
Dec 28, 2011
Messages
145
I have my concerned with how the footmen are presently in the trailer and in the limited gameplay I've seen. The footmen and knights kinda all blend into a nebulous mass and its hard to tell the units apart by look. Making the footmen more distinct, perhaps with a brighter armour colour, would help. In base Warcraft 3, it's easy to pick out footmen with that white trim on the edge of their shields.
Also, those pauldrons, they need to be scaled down, they are far too big.

Actually, making sure units don't blend together is a suggestion that extends to all units. You should be able to tell the composition of a force easily.
 

Wrda

Spell Reviewer
Level 28
Joined
Nov 18, 2012
Messages
2,011
  • Able to change the minimap icon of any unit
What does this even mean? Minimap icon of units?
  • How about being able to see idle units of any type?
It's already able to do that.

LUA is scripting language, perfectly fitting for game's scripts. C# is a real programming instead. Dont mess things up. LUA used widely between many UG-supporting projects.
Why one would even add lua to warcraft... Really we already have jass and vjass, that's enough. No need weird crap like LUA or C# just because "yes". It feels really like some unknown life form just invaded Earth to ruin everything.

We better retain our beloved JASS <3

  • able to change the map in a room and retain the players
Do you mean in lobby?
 
Wrda said:
It's already able to do that.
yes, if you put "worker" classification on it, but also makes it able to build. Also, is limited, because even if youhave 10 different unit types, it will still display the default for the race unit's worker, with a number. Duh...

Wrda said:
Do you mean in lobby?
yes
 
Last edited:
Level 2
Joined
Sep 26, 2018
Messages
19
The whole point of what I am saying is that I hate advertisements, micro-transactions, Auction-stuffs, or seeing a $$ sign in Warcraft III Reforged. That's all. I don't care about paying for Campaign DLC's for Warcraft III Reforged for as long as no advertisements, micro-transactions, Auction-stuffs, or seeing a $$ sign in the game that I bought with my blood and sweat. That's it.
 

deepstrasz

Map Reviewer
Level 75
Joined
Jun 4, 2009
Messages
20,284
If you buy the game, you should have full access of it, else why the hell would you buy it? Don't turn this game into a "pay to win" style. Being greedy is the worst thing they could become...
It's about buying aesthetics... The problem is that you can't use an ad blocker not to see them and they psychologically annoy you.
 
Level 19
Joined
Dec 12, 2010
Messages
2,074
If you buy the game, you should have full access of it, else why the hell would you buy it? Don't turn this game into a "pay to win" style. Being greedy is the worst thing they could become...
no, you should not, as history shows. Most of the most successful revenue-wise games are always microtransaction-oriented, simple as is. Nobody cares about your feeling, get over it, market matters.
 

Rui

Rui

Level 41
Joined
Jan 7, 2005
Messages
7,551
Why one would even add lua to warcraft... Really we already have jass and vjass, that's enough. No need weird crap like LUA or C# just because "yes".
Weird craps like C# and Lua are widely used ;) They are better from the pedagogical point of view. Though I'd still like to be able to use JASS, I'm curious to see what the other possibilities entail.
 
Status
Not open for further replies.
Top