Skip to content
This repository has been archived by the owner on Nov 19, 2017. It is now read-only.
/ asl Public archive

NOTE: DON'T USE THIS REPOSITORY ANYMORE. Everything has been moved to https://github.com/tdauth/dmdf. Old description: A collection of systems written in vJass for creating Warcraft III: The Frozen Throne maps and modifications.

License

Notifications You must be signed in to change notification settings

tdauth/asl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a huge collection of JASS and vJass scripts which is called "Advanced Script Library" or just "ASL".
It contains some useful systems which can be used for creating custom Warcraft III: The Frozen Throne projects.

GIT repository:
git://wc3lib.org/asl.git

Help me to find bugs and give me suggestions using my email:
tamino at cdauth.eu

I've moved the scripts into extern code files since I'm working on a GNU/Linux system and the trigger
editor is very bugged if you use it with wine.
Besides some files can be excluded easily by unsetting various global constants which are listed below which decreases the code's size massively.

Installation/Usage:

-- JassHelper:
JassHelper 0.A.2.A is required since there is an unknown bug in higher version (0.A.2.B) which prevents
code from being compiled correctly.
Read the following posts for further information:
http://www.wc3c.net/showpost.php?p=1132707&postcount=3630
http://www.wc3c.net/showpost.php?p=1132728&postcount=3632

Options [forcemethodevaluate] and [noimplicitthis] are supported!

-- Code integration:
Use file "src/Import Asl.j" to import all required scripts.
Usually you have to change the lookup folder entry in the "jasshelper.conf" file of your JassHelper
program before.
The JassHelper has to lookup folder "src" in this directory. If configured correctly you're able to
write a simple statement like //! import "Import Asl.j" into your own code or map script.

The following list shows you which global constants have to be specified in your custom code that ASL works properly:
globals
	constant boolean A_SYSTEMS = true
	constant boolean A_DEBUG_HANDLES = false // not usable yet!
	constant boolean A_DEBUG_NATIVES = false
	constant real A_MAX_COLLISION_SIZE = 500.0 // used by function GetUnitCollisionSize
	constant integer A_MAX_COLLISION_SIZE_ITERATIONS = 10 // used by function GetUnitCollisionSize
	constant integer A_SPELL_RESISTANCE_CREEP_LEVEL = 6 // used by function IsUnitSpellResistant
	// used by function GetTimeString()
	constant string A_TEXT_TIME_VALUE = "0%1%"
	constant string A_TEXT_TIME_PAIR = "%1%:%2%"
	// used by ATalk
	constant string A_TEXT_EXIT = "Exit"
	constant string A_TEXT_BACK = "Back"
	constant string A_TEXT_TARGET_TALKS_ALREADY = "Target is already talking."
	// used by ADialog
	constant string A_TEXT_DIALOG_BUTTON = "[%1%] %2%" // first one is the button short cut (integer), second one is the button text (string)
endglobals

If you're using debug mode and ASL's debug utilities (ASystemsDebug) you'll have to defined lots of cheat strings.
For default English strings you can import a pre-defined file using:
//! import "Systems/Debug/Text en.j"

WARNING: Apparently, GetLocalizedString() in constant strings crashes the game in map selection!

WARNING: Using % chars in the custom map script leads to unexpected results. You should define the globals somewhere else if possible.

-- Trigger editor integration:
Import the following files with their corresponding paths to enable various data types and functions in World Editor's trigger editor:

Use the wc3converter to create a new trigger data file:
wc3converter --merge TriggerDataNew.txt <path to original TriggerData.txt from War3Patch.mpq> gui/UI/TriggerData.txt

Then import the file "TriggerDataNew.txt" as:
"UI\TriggerData.txt"

Import the file "gui_<language id>/UI/TriggerStrings.txt" as:
"UI\TriggerStrings.txt"

Import the file "gui_<language id>/UI/WorldEditStrings.txt" as:
"UI\WorldEditStrings.txt"

Remember that you have to import all ASL code into your map (script) to use those trigger actions and types.
Currently supported language ids are:
* de

-- Parser/pjass bug:
If you're using a huge amount of code (like me) I recommend dropping "pjass" usage and replacing it
by JassParser (http://www.wc3c.net/showthread.php?t=105235) since there is a memory exhausted bug in
"pjass" (http://www.wc3c.net/showpost.php?p=1115263&postcount=154).

-- BonusMod support:
For using Bonus Mod you have to make an entry in the "jasshelper.conf" file for the object merger tool.
It should always be named "ObjectMerger".
You have to import file "Systems/BonusMod/Creation Bonus Mod.j" once to create all object editor data required by Bonus Mod code.

-- Optimization:
Please use Wc3mapoptimizer (http://www.wc3c.net/showthread.php?t=79326) to decrease your map script size and increase the script's performance.

Tamino Dauth <tamino@cdauth.eu>, 2016-11-20

About

NOTE: DON'T USE THIS REPOSITORY ANYMORE. Everything has been moved to https://github.com/tdauth/dmdf. Old description: A collection of systems written in vJass for creating Warcraft III: The Frozen Throne maps and modifications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published