Jump to content

Share Gracia Final Ai Compiler (Nasc) By L2Shrine.com

Recommended Posts

Sorry for my english, here you have screenshott when i am to running  l2npc server for load npcs (without arguments).

I am doing double click on l2npcmyext64.exe and then happen it.




Bt iif i run from command prompt then l2npc work (load ai.obj and npcpos.txt).


Fixed, it was wrong parsing of command line parameters (you have a space in path to directory where you try to run it).


Also added advext functions from newer version of their compiler (where they renamed UnBlockTimer to UnblockTimer - hihi, my compiler takes both) so we're now fully compatible with vanilla gracia final and 2 different advext compiler versions :))



Edited by eressea
Link to comment
Share on other sites

I've uploaded new version - the download URL is the same, http://download.l2shrine.com/compiler.zip



  • removed some npcd log messages when in compile mode
  • fstrings are now stored in std::map<UINT32, std::wstring> instead of stupid wchar_t* array (with limited index)
Link to comment
Share on other sites

  • 2 weeks later...

This version works with interlude?


Nope, but similar thing can be probably achieved using C4 l2npc.exe (but someone has to "backport" it)

Link to comment
Share on other sites

  • 6 months later...

f.e. i have ai.obj how to compile to nasc and decompile againt to obj ?

actually ai.obj is compiled from ai.nasc (witch is source)

you compile ai.nasc trought l2npc.exe (witch is npc server(is like "virtual machine"))

you can use already decompiled an manually fixed version of GF ai.obj(witch is decompiled by sauron decompiler for c4(and manualy fixed to work like a charm..))

you need just to edit and compile the ai.nasc, you dont need to decompile it again...

to run l2npc.exe

just launch you cmd -> then switch to your l2npc dir (via chdir command) and then type : l2npc.exe -c -e

Link to comment
Share on other sites

  • 2 years later...

Endless gratitude to Eressea ... for work, generosity, help, openness, responsiveness ... I adore her ...)


(lvl 0) Сompiler application guide (for gremlins like me :)
1. Version Python no higher than 2.7 (syntax errors may occur in newer versions)
2. Open a command prompt:
3. cd C: \ l2  // directory where the Compiler is located. In my case, C: \ l2
4. make.py all  // execute the .py script with the command line parameter all
get three big compilations:
ai folder
To compile one big ai.nasc into ai.obj:
1. put ai.nasc in the folder with l2npc.exe (in my case C: \ l2 \ nasc \ l2npc)
2. Open a command prompt:
3. cd C: \ l2 \ nasc \ l2npc  // again specify the directory)
4. l2npc.exe -c ai.nasc


Compiler: http://download.l2shrine.com/nasc.tar.gz

Edited by Hitcher
Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...
On 1/7/2017 at 7:52 PM, eressea said:

Hi everyone,


I've made a brand new AI compiler for Gracia Final based servers (based on l2npc.exe)


Download: http://download.l2shrine.com/compiler.zip

Source: https://bitbucket.org/l2shrine/extender-public (the compiler is part of MyExt64 open source extender)


Some basic info

  • it uses the official NASC syntax for Gracia Final, so
  • use class a : b, not class 0 a : b and define set_compiler_opt base_event_type(@NTYPE_NPC_EVENT) or set_compiler_opt base_event_type(@NTYPE_MAKER_EVENT)
  • use UTF-16LE input files
  • use myself.something, not myself::something
  • it should work the very same way as AdvExt compiler including all new functions, variables, handlers and types they've added
  • it also accepts PSTATE_, MSTATE_ ... constants
  • if you run l2npc.exe without command line parameters, it runs as a standard l2npc.exe (with MyExt64 extender)
  • if you run l2npc.exe with command line parameters, it runs as a compiler



how can i compile nasc file?





never mind. i did it.

Edited by girogius
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Posts

    • Promotional banners:  
    • We have added few new features for Second Edition of L2Etina. Check them out:   While streaming L2Etina, you will now receive L2Coins automatically.   Dwarves who have set private workshop, now automatically sell Crystallization to nearby players. For this service, they receive 10% of created crystals.   Before closing game, you will now see amount of earned experience, adena, total play time and acquired items.   You can now check Ranking of current and previous edition. This window can be found in Main Menu.   Party Window now have a special spot, showing if member has Noble Blessing.   Players from South America will be able to connect to the server by proxy.   Players who have supported first edition by donation, will now 2 weeks of free premium.   We have rewritten description of every buff, so they are now clear and handy. Vote rewards will be different for new edition, but exact items are not decided yet.   When spoil is successfull, you will now see special popup window. When you target monster who has been spoiled, you will see Spoil as a debuff.   Buff Store now have possibility to refuse to buff someone. Retail version of party matching was added back. Offline private stores now automatically disappear after 5 days. There are plenty more improvements and fixes, like ability to disable skill bar, multiple fixes to epic bosses, adjustments to aggro.
    • First of all thank you for fast answer. I have changed internal as you said but didn't work sir.
    • The difference isn't paying upfront or at the end of each week. The major difference is that paying clans to join, leads to leaders making random weak sides who play just for money and creates an extremely toxic fake competition in-game (i.e. l2 dex, e-global, valhalla and this kind of servers). Paying clans just to join absolutely kills the rivalry between them as there are no real losers and winners. Everyone gets paid at the end of every week so who cares right ?   Rewarding the winners with cash gives a massive motive to the leaders to create strong sides and try their best to win without giving any advantage to any clan (unlike paying people to join and basically giving them free premiums and whatnot). In this case, there will always be losers and winners and the rivalry will be kept alive.   I hope that clears up the massive difference between the 2 scenarios. Look at all those big russian servers. No1 makes fraps flaming about which side is better. Everyone cares about daily 9v9s or organized ones. There is no clan identity anymore because leaders simply don't care. They have been so detached from the clan's identity that most of the times the leader's CP holds a different name to the side's. This is a very important point to think about. 
    • change the server.ini  InternalHostname =     and try
  • Topics

  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disbaled AdBlock