// https://rathena.org/board/topic/118854-npc-item-with-control-request/
prontera,155,181,5 script Sample 4_F_KAFRA1,{
.@item_id = 512;
if (callsub(L_HasItem, .@item_id)) {
npctalk "you already obtained "+getitemname(.@item_id);
}
else {
getitem .@item_id,1;
npctalk "you obtained "+getitemname(.@item_id);
}
end;
L_HasItem:
.@item_id = getarg(0, 0);
.@cid = getcharid(0);
.@aid = getcharid(3);
.@gid = getcharid(2);
if (.@item_id) {
query_sql("SELECT COUNT(1) FROM `inventory` WHERE `nameid` = "+.@item_id+" AND `char_id` IN (SELECT `char_id` FROM `char` WHERE `account_id` = "+.@aid+")", .@inventory);
query_sql("SELECT COUNT(1) FROM `cart_inventory` WHERE `nameid` = "+.@item_id+" AND `char_id` IN (SELECT `char_id` FROM `char` WHERE `account_id` = "+.@aid+")", .@cart_inventory);
if (.@gid)
query_sql("SELECT COUNT(1) FROM `guild_storage` WHERE `nameid` = "+.@item_id+" AND `guild_id` = "+.@gid+")", .@guild_storage);
.@count += .@inventory;
.@count += .@cart_inventory;
.@count += .@guild_storage;
.@count += countitem(.@item_id);
.@count += cartcountitem(.@item_id);
.@count += storagecountitem(.@item_id);
if (.@gid)
.@count += guildstoragecountitem(.@item_id);
}
return (.@count > 0);
}
Comments
0 B
|👍
/👎