Jump to content
  • 0

Nasc Ai Functions


Question

Posted (edited)

Greetings, Again!

 

Finally got things up and running thanks to Xel.

 

Anyways, I've started the dive into AI modifications. I haven't done this in a long time and when i did, it was EXTREMELY basic edits and without a this wonderful compiler.

 

The syntax for NASC seems amazingly simple. I know exactly what's going on syntacticly but not what is happening in terms of functionality and for each method call.

 

For example, I edited the Gremlin class from blank to this:

(i copied the handler from the superClass)

class 1 gremlin : warrior_passive
{
handler:
  EventHandler MY_DYING( always_list, c1, code_info, i0, i9, last_attacker, lparty, member, random1_list, target )
  {
    myself::Say( "SAYING SOMETHING!!!" );
    myself::Shout( "SHOUTING SOMETHING!!!" );
  }
}

My understanding is that the EventHandler is exactly that: A bit of code that sits around and waits for it to be called and then executes. I'm ASSUMING the MY_DYING event handler is triggered when the Gremlin has or is about to die. This code though seems to do nothing and never gets executed.

 

So, This brings me to some questions:

-Is there a guide with comments and examples somewhere? Like a directory of all the functions and what they do?

- The arguments passed in to the handler, what do these mean?

- The ::'s, are these like C++ class namespaces?

- Is myself similar to this in C++ or self in Obj-C?

- BOOL seems to be non-existant. Is that true? (Doesn't matter, is just odd)

- Are there any FOR / WHILE / DO WHILE loops?

- In code like this:

if( target.alive == 0 && target.is_pc == 0 ) {}

Why is the syntax not

if (target.alive && target.is_pc) {}?

- Can you define your own functions and handlers?

 

Thanks in advance to anyone that answers. :)

 

 

 

 

 

 

 

 

Edited by Universe

2 answers to this question

Recommended Posts

  • 0
Posted (edited)

1. Args are gloval vars for that npcmaker instance. For normal mobs that means nothing - but ability for scriptevents and big bosses to store variables and use them later in other handlers is a big must

 

2. namespaces\class is - pseudo definition. but that is sort of the idea.

 

3. myself is the defintion handler\class for the npc instance in l2npc (The gremlin thats being killed by you in this scenario) - that's having it's handler executed by the npcmaker instance that spawned it.

 

4.  I don't think so - can't remember - search for bool in a decompiled c4 ai and see. Either way there's int returning 1 so.. live with that.

 

5. FOR and Switch ...can't remember about while - very doubtful since it's threaded execution that needs to return asap.

 

6. Ask NCSoft - syntax does not support it if i remember correctly.

 

7. You can code it and extend it - but i doubt you'll ever learn\get that far. Requires some significant time investment sadly.

Edited by mcbigmac
  • 0
Posted

1. Args are gloval vars for that npcmaker instance. For normal mobs that means nothing - but ability for scriptevents and big bosses to store variables and use them later in other handlers is a big must

 

2. namespaces\class is - pseudo definition. but that is sort of the idea.

 

3. myself is the defintion handler\class for the npc instance in l2npc (The gremlin thats being killed by you in this scenario) - that's having it's handler executed by the npcmaker instance that spawned it.

 

4.  I don't think so - can't remember - search for bool in a decompiled c4 ai and see. Either way there's int returning 1 so.. live with that.

 

5. FOR and Switch ...can't remember about while - very doubtful since it's threaded execution that needs to return asap.

 

6. Ask NCSoft - syntax does not support it if i remember correctly.

 

7. You can code it and extend it - but i doubt you'll ever learn\get that far. Requires some significant time investment sadly.

 

Hey!

 

Thanks for getting back to me. I've had my head buried in a custom control panel last few days, haven't had time to play with AI much.

 

This is great info though and i'll def use it when i start on AI again.

 

If you can think of any function documentation that exists please do link it.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • LIVE VERIFICATION? SUMSUB? “IMPOSSIBLE”? ▪ Spoiler: it is possible — if you know who to work with. A client came in with a task to pass **live verification** on **WantToPay**, a Telegram virtual card service. On the platform side — **Sumsub**: liveness check, SMS, manual review. “Fast” and “by eye” simply don’t work here. › What was done: → analyzed the verification scenario and Sumsub requirements → built the correct flow: phone number, email, timing → **completed live verification remotely, without account handover** → handled SMS and confirmation codes → brought the process to final approval ▪ Result: → verification passed → access granted → no flags or repeat requests ▪ Live verification is not luck. It’s scenario-based preparation — not hope. › TG: @mustang_service ( https:// t.me/ mustang_service ) › Channel: Mustang Service ( https:// t.me/ +6RAKokIn5ItmYjEx ) *All data is published with the client’s consent.* #verification #sumsub #livecheck #kyc #case
    • IMPORTANT INFO: In a few days, I will switch to completely new code, written from scratch with a new download system, patch building and management system. The Updater will become true 2026 code with "foolproof systems". I'm going to create a Discord server for customers to request new ideas and features. FIRST CUSTOMERS ARE ALREADY USING THE NEW UPDATER ON LIVE SERVERS! Watch this topic for upcoming info because the new updater is around the corner! Yes, you can still use self-update on the previous updater! No, the new updater won't be compatible with the old patch system! A new build is required, but players who already have game files won't have to download the entire patch again! New templates and updates to existing templates are coming soon! Sneak peek:  
    • i used guytis IL project and source. i found in his project there are 3 Client version source... 1,CliExt_H5   --->this one cant be compiled in VS2005,i did know why..is it for H5 client? 2,CliExtNew  --->this one is IL version ,but when i compiled it and use it.player cant login game,MD5Checksum wrong.i check the source code,but not found any hints. 3,L2Server    --->this one for HB client?im not sure...   so my question is what are the differences between these three versions of cliext.dll?how can i fix the issue of the MD5Checksum not matching problem?   01/29/2026 21:04:11.366, [CCliExt::HandleCheckSum] Invalid Checksum[1130415144] vs [-721420287] packet[dd] len[29] sum[2698] key[30] HWID[] Account[]! 01/29/2026 21:04:11.366, SocketLimiter::UserSocketBadunknownprotocol 11111111111 01/29/2026 21:04:11.366, [usersocket]unknown protocol from ip[113.137.149.115]!      
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..