Jump to content
  • 0

How to check if an item exists in users inventory


Question

Posted

Hello guys,

 

I want to check through ai if an item exists in the users inventory.

 

I have tried using function: OwnItemCount but i got compilation error: Undefined function. (Using l2shrine compiler shared by Eressea).

 

Below is an example of my code as i am trying to compile it:

set_compiler_opt base_event_type(@NTYPE_NPC_EVENT)
class default_npc
{
}

class citizen : default_npc
{
}
class myclass : citizen
{
...
  EventHandler MENU_SELECTED( talker, ask, reply) {
    ...
    if(myself.OwnItemCount(talker, 57) > 0 )
    {
    //do something
    }
  }
...
}

 

I have also tried using GlobalObject::OwnItemCount like gg.OwnItemCount but i get the message that gg is an unknown variable..

 

Do you use some other function for this? 

If anyone could shed some light on this i'd appreciate it. 

 

Thanks,

Hugo

7 answers to this question

Recommended Posts

  • 0
Posted
14 hours ago, zconll said:

You is using incorrect syntax, change:

 

myself.OwnItemCount -> OwnItemCount

 

 

It works that way! Thank you.

 

Can you elaborate a bit on that, why it works that way and the difference between your proposed way and myself.OwnItemCount?

 

Also, it would be better instead of using direct item id in the code, i place a paramter and use that instead, so:

 

if(OwnItemCount(talker, 57) > 0)

becomes:

 

if(OwnItemCount(talker, myItemID) > 0)

I have also created this parameter section:

 

class myclass : citizen
{
parameter:
  int	  myItemID = 57;

}

 

But i get an error that this is an "abnormal" parameter when the NPC reaches that part of the code.

 

Am i not using it correctly?

 

Thanks,

Hugo

  • 0
Posted (edited)

functions from the event object (myself) or the global object (gg) don't have myself./gg. to call them, thats just how it works :D

 

using a defined parameter in the AI class is only really useful if you plan on changing it later and want an easier way to edit it, or if you want to set those parameters via npcdata or npcpos, otherwise just using the id is fine, but you can also use the pch name for it, so OwnItemCount(talker, @adena)

 

as for what it errors on you, could just be it doesn't like your spacing on it, so try just

int myItemID = 57;

 

which you can also use the pch name on, so int myItemID = @adena; should work too

 

the l2off parsers are very bitchy about formatting :D

Edited by Anarchy
  • Thanks 1
  • 0
Posted
1 hour ago, Anarchy said:

functions from the event object (myself) or the global object (gg) don't have myself./gg. to call them, thats just how it works :D

 

using a defined parameter in the AI class is only really useful if you plan on changing it later and want an easier way to edit it, or if you want to set those parameters via npcdata or npcpos, otherwise just using the id is fine, but you can also use the pch name for it, so OwnItemCount(talker, @adena)

 

as for what it errors on you, could just be it doesn't like your spacing on it, so try just

int myItemID = 57;

 

which you can also use the pch name on, so int myItemID = @adena; should work too

 

the l2off parsers are very bitchy about formatting :D

 

Very insightful, thank you for taking the time!

 

I will play a little bit with the spacing and report back!

 

Thanks,

Hugo

  • 0
Posted
23 hours ago, hugolez said:

maybe u use this

 


if (myself::OwnItemCount(talker, myItemID) > 0)

 

Hey,

 

well after i restarted the processes everything works.

 

So the spacing was ok.

 

Thank you for your reply!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   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

    • Sell ready interlude server files, with all popular features and tested, stable source + fully functional premium geodata for free.   Features include: Events: DM CTF TVT LM Dressme system Custom Buffer GM Shop Custom community board Donation manager  Auto Farm   Album: sell c6 — ImgBB   Test Server online: Patch link: https://drive.google.com/file/d/1mvEbv9XESsvfWwc638xFyyzyESeE2U95/view?usp=drive_link Auto acc create and auto admin   Price: 300$. Discord: l2retro
    • Faltan demasiados archivos,  y lógicas en clases claves como L2pcInstance, entre otras. si bien muchas cosas están y el flujo es valorable.  Gracias por tu esfuerzo es bastante... pero realmente no esta completo el código, falta que subas todas las modificaciones en clases colaterales... podrías intentar subir un diff de todo el mod  completo de tu pack y bueno ahí si que cada uno adapte... pero faltan muchas cosas, dudo que haya gente que lo haya echo funcionar con esto... 
    • I know people who have fully bypassed and reversed AAC. One day, they might even release the full source code, but for now, they’re still making money off it. I won’t name anyone, but it’s clear that there aren’t any truly solid anticheats for Lineage2. As I’ve said before, kernel level anticheats are the only real solution. Anything that runs as Internal and injects gets flagged, and your account ends up getting kicked or banned. That’s just how most games handle it nowadays. To TL;DR the whole thing cheating will always exist because there are people out there smart enough to bypass any protection and run private cheats. Public cheats are always detected eventually, so I don’t see any point in buying AAC, especially when they claim it blocks adr, which simply isn’t true.
    • 🌐 Website: https://l2adonis.com 📅 GRAND OPENING: July 18, 2025 – 20:00 (UTC+2) 💬 Discord: https://discord.com/invite/tZBj8JxAwx 🚫 No auto-farm • No auto-macro • No pay-to-win • No custom   Some Basic Info's (More detalied info's on website)  EXP/SP: x25  Adena: x15  Drop: x15  Spoil: x15  Seal Stones: x15  Raid Boss Drop: x10  Epic Boss Drop: x1  Manor: x10  Safe Enchant: +4  Max Enchant: +16  Normal Scroll Chance: 50%  Blessed Scroll Chance: 66% (If enchant fail item remain +4)  Buff Slots (30+4 extra with Divine Inspiration)  Dances/Songs Slots 14  Auto-learn skills  ⚔️ Real PvP • Real Progression • Retail-like experience JOIN NOW and relive the real L2 experience!
    • Discord         :  utchiha_market Telegram        : https://t.me/utchiha_market Auto Buy Store  : https://utchihamkt.mysellauth.com/ Not sure if we’re legit? Check Our server — real reviews, real buyers https://discord.gg/uthciha-servicess  | https://campsite.bio/utchihaamkt
  • 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 Disabled AdBlock