Jump to content

[Script Command] Sellitem - Filtered selling shop window


Recommended Posts

Posted

This mod was ported from a Hercules plugin by @bio which can be found here. Thank you for the great idea.

9U2Z5qH.jpg

This mod implements a new script command called `sellitem` which works just like `callshop`, but only for selling items.

This command has an ability to filter out unwanted items that you don't want to display in selling shop.

Quote

Command usage:

sellitem "<shopname">,<type>,<param>{,<overcharge>};

The <type> parameter is for specifying the filter type.

SFT_TYPE - Type filter

SFT_ID - ID filter

Item type filter hides every item that isn't of type specified in <param> parameter.

You can set nth bit of <param> to allow certain item type to be displayed. Where n is an item type's numerical value. See src/map/script_constants.h for more info.

Item  ID filter hides every item whose ID isn't equal to <param>.

<Overcharge> parameter controls whether overcharge skill will affect item value display in the window.

Example usages:

mes "[ Jellopy Lover ]";
mes "I buy Jellopy for 50 Poring coins each.";
close2;
npcshopattach "JellopyShop";
sellitem "JellopyShop",SFT_ID,909;
end;
mes "[ Rare Items Collector ]";
mes "Sell me some rare items and cards";
close2;
.@filter |= 1 << IT_CARD;
.@filter |= 1 << IT_ARMOR;
.@filter |= 1 << IT_WEAPON;
npcshopattach "CardShop";
sellitem "CardShop",SFT_TYPE,.@filter;
end;

DOWNLOAD THE DIFF FILE

  • Upvote 6
  • MVP 1
Posted

Hi, Secret thank you for porting this from rAthena this is very useful command. i have a question so im able to get support on this? since yours is working fine. my emulator is kinda old around June 2016.
When i recompile my rAthena it gives me error.

 

Severity	Code	Description	Project	File	Line	Suppression State
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19095	
Warning	C4047	'function': 'int' differs in levels of indirection from 'bool (__cdecl *)(item_data *,int,int)'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Warning	C4047	'function': 'item *' differs in levels of indirection from 'int'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19103	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19114	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19117	
Warning	C4024	'itemdb_isrestricted': different types for formal and actual parameter 1	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Warning	C4024	'itemdb_isrestricted': different types for formal and actual parameter 3	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2198	'itemdb_isrestricted': too few arguments for call	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2198	'itemdb_search': too few arguments for call	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19095	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19103	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19114	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19117	


Thank you in advanced! i appreciate it.
 

Posted
1 hour ago, Kaze said:

Hi, Secret thank you for porting this from rAthena this is very useful command. i have a question so im able to get support on this? since yours is working fine. my emulator is kinda old around June 2016.
When i recompile my rAthena it gives me error.

 


Severity	Code	Description	Project	File	Line	Suppression State
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19095	
Warning	C4047	'function': 'int' differs in levels of indirection from 'bool (__cdecl *)(item_data *,int,int)'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Warning	C4047	'function': 'item *' differs in levels of indirection from 'int'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19103	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19114	
Error	C2039	'inventory': is not a member of 'map_session_data'	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19117	
Warning	C4024	'itemdb_isrestricted': different types for formal and actual parameter 1	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Warning	C4024	'itemdb_isrestricted': different types for formal and actual parameter 3	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2198	'itemdb_isrestricted': too few arguments for call	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error	C2198	'itemdb_search': too few arguments for call	map-server	C:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19095	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19099	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19103	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19111	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19114	
Error (active)		struct "map_session_data" has no field "inventory"	map-server	c:\Users\Administrator\Desktop\Test-Server\src\map\clif.c	19117	


Thank you in advanced! i appreciate it.
 

Replace all sd->inventory.u.items_inventory to sd->status.inventory

  • 7 years later...
Posted

 

1 hour ago, Johnson said:

How do we append multiple item ids if SFT_ID

sellitem "egglog_shop",SFT_ID,.samplearray[.@i];

 dunno

void clif_sellitem(struct map_session_data* sd, enum sellitem_filter_type type, int param[], bool discount) {



case SFT_ID:
	if !(contains(param,sd->inventory.u.items_inventory[i].nameid)
		continue;
	break;

 

  • 1 month later...
Posted

It the most u add it manually and the console output should give small introduction what's wrong. I'm crtly can't help by src modifications. Sry

 

Rynbef~

Posted (edited)

Hi I try to add it manual but is having only 1 error. 
Clif_Sellitem doesn't seem to be working as per the screenshot shows. How to solve this?
image.png.801a54acca25b5baa0fcae06a59f549a.png

Edited by playniks
Posted
15 minutes ago, Outlook said:

Thank you it's works fine but can't use NPC Script

 

mes "[ Jellopy Lover ]";
mes "I buy Jellopy for 50 Poring coins each.";
close2;
npcshopattach "JellopyShop";
sellitem "JellopyShop",SFT_ID,909;
end;
mes "[ Rare Items Collector ]";
mes "Sell me some rare items and cards";
close2;
.@filter |= 1 << IT_CARD;
.@filter |= 1 << IT_ARMOR;
.@filter |= 1 << IT_WEAPON;
npcshopattach "CardShop";
sellitem "CardShop",SFT_TYPE,.@filter;
end;

Screenshot 2024-03-30 042426.png

Your console error tells you the problem

  • 2 months later...

Join the conversation

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

Guest
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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...