wurstscript / WurstScript

Programming language and toolkit to create Warcraft III Maps
https://wurstlang.org
Apache License 2.0
224 stars 30 forks source link

Warcraft 1.26 crashes with fatal error on hello world map. #981

Closed zfxstd closed 3 years ago

zfxstd commented 3 years ago

does Wurst supports 1.26 warcraft? After as i did clean install from off. website and tried to launch WC3 with vscode - i getting error. Is it my mistake or not? p.s. sorry for my bad english. :) p.s.s. tried to launch with clear and fresh instance of wc3 - same error.

Thanks!

image languageServer.log compiler.log

Frotty commented 3 years ago

In theory yes, but the latest standard library uses new natives. You will need to use the pre1.29 branch and provide your own common.j and blizzard.j for version 1.26. Then it could potentially work.

zfxstd commented 3 years ago

Its sad. A huge community still plays 1.26 and wurst is awesome thing to create interactive maps.

What excactly does stdlib? Is it only "data storage" or this is language with compiler by itself? And how much functionality is lost compared to the latest version of stdlib?

Thanks!

Frotty commented 3 years ago

Its sad.

What is? It should work, just out of the box wurst is configured for the latest patch as it is arguably more common.

A huge community still plays 1.26 and wurst is awesome thing to create interactive maps.

As far as I know it's mostly russian/asian communities with custom pvpgns? I don't have a 1.26 install so I can't test it. If you like wurstscript consider leaving a star for the project on github :)

What excactly does stdlib? Is it only "data storage" or this is language with compiler by itself? And how much functionality is lost compared to the latest version of stdlib?

stdlib stands for standard library, providing basic packages for common tasks in mapmaking. See https://github.com/wurstscript/WurstStdlib2 Not much functionality is lost, but the branch is not maintained.

zfxstd commented 3 years ago

As far as I know it's mostly russian/asian communities with custom pvpgns?

Yes. In the Russian segment, there are several pvpgns, where a considerable number of people now play. But mostly ( or even all ) at 1.26. So thats why im asking.

If you like wurstscript consider leaving a star for the project on github :)

Done. 🤠

Ok, thanks. Can you describe a couple of steps more detailed, how do I port and make it work, what exactly should I do? At least in theory.

p.s. misclick.

Frotty commented 3 years ago
  1. Change your stdlib to pre1.29. For that open wurst.build and change the dependency entry by adding :pre1.29 to the end, so : https://github.com/wurstscript/wurstStdlib2:pre1.29
  2. Do a grill install
  3. Replace the common.j and blizzard.j files in your project's _build folder with 1.26 version. You can extract them from the game mpqs (scripts directory).
zfxstd commented 3 years ago

Thanks. I understood the whole problem now. Its necessary to do a lot of backporting, since many functions even from 1.29 simply do not exist. (Hashtable, Lightning, Texttag, problem is even with core function StringLength(this) and so on... ) Technically, it's possible to make it work. But too much functionality will still be cut out and this is work for a few days. Thank you. You helped a lot. May be closed.