Restock System

31 posts in this topic

hello @Dastgir does it restock item's after all item consumed?


does it restock item's which are consumed? e.g if u consumed 20 fly wing out of 50, it should restock 20 fly wing only.

that way player will not run out of pot's in PvP & WoE else every time player has to check how much pot's left. 

Edited by caspe

Share this post

Link to post
Share on other sites

does it restock item's after all item consumed?

It will check if the last of selected item was consumed and do ::OnRestock NPC Event to restock the items to the selected amount. Works very well and without any ms of lag. Thanks to @Dastgir

Fixed and corrected. Works fine on current branch.

How to enable:
Move "restock.c" to "src/plugins" and open "Makefile" with editor. add "restock" to line "MYPLUGINS = "

Move "atcommand_restock.txt" to "npc/custom" and add "npc/custom/atcommand_restock.txt" to your "scripts_custom.

conf" for autostart.Open file "conf/plugins.conf" and add "  "restock",  " to enable this plugin after you'll restart the map serve

Do "make all" on console. To enable all changes. Enjoy @restock and @restock2


If you want to disable @restock on Castles/WoE just configure your atcommand_restock.txt and do a mapcheck on "OnRestock:" like


		getmapxy([email protected]$, [email protected], [email protected], UNITTYPE_PC);

		if (getmapflag([email protected]$, "mf_gvg_castle") == 1) {
			dispbottom "Atcommand disabled on this map.";




SQL Table:


CREATE TABLE `restock` (
	`charid` INT(10) NOT NULL,
	`restockid` INT(6) NOT NULL,
	`restkq` INT(5) NOT NULL,
	`restkf` INT(10) NOT NULL DEFAULT '1'


Edited by Christian [epicRO]

Share this post

Link to post
Share on other sites

If you want to make Arrows and Bullets Auto-Equip after they have been restocked:


		if ([email protected]){
			[email protected] = restkid;
	++		if (getiteminfo([email protected], ITEMINFO_TYPE) == 10) autoequip([email protected], 1);
			restock_item([email protected],[email protected],[email protected]);
			if ([email protected] == 1) [email protected]$ = "Storage";
			if ([email protected] == 2) [email protected]$ = "Guild Storage";
			sleep2 500;
			if (countitem([email protected]) == 0) {
				announce "Trying to restock "[email protected]+"x "[email protected]+" from "[email protected]$+". Failed. Amount does not fit.",bc_self,0xFF8F01;
	++		if (getiteminfo([email protected], ITEMINFO_TYPE) == 10) autoequip([email protected], 0);
			restkid = 0;


Share this post

Link to post
Share on other sites
3 hours ago, Questune09 said:

@Dastgir if you dont mind can i request a restock system for rathena emulator ^_^ i like this script using herc very nice

better solution use hercules

Share this post

Link to post
Share on other sites

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