Jump to content
  • 0
Sign in to follow this  
glemor123

@drop on / off command

Question

when a player login. @dropoff is automatically initiated.

 

functions of drop off and drop on

 

drop off= any item cannot be drop but can be stored to the storage and can be sold.

 

drop on= can drop the item and etc.

 

I'm requesting for .diff for hercules and rathena

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

its so simple that I can write this on the fly until I can cry

 src/map/atcommand.c | 26 ++++++++++++++++++++++++++ src/map/pc.c        |  5 +++++ src/map/pc.h        |  2 ++ 3 files changed, 33 insertions(+)diff --git a/src/map/atcommand.c b/src/map/atcommand.cindex b5e8fa7..af092eb 100644--- a/src/map/atcommand.c+++ b/src/map/atcommand.c@@ -9374,6 +9374,31 @@ static inline void atcmd_channel_help(int fd, const char *command, bool can_crea 	clif->message(fd,atcmd_output); 	return true; }++ACMD(drop) {+	if ( stristr( message, "on" ) ) {+		if ( sd->candrop )+			clif->message( fd, "You already turn on @drop." );+		else {+			sd->candrop = 1;+			clif->message( fd, "You are now turn ON @drop. You can drop items now." );+		}+	}+	else if ( stristr( message, "off" ) ) {+		if ( !sd->candrop )+			clif->message( fd, "You already turn off @drop" );+		else {+			sd->candrop = 0;+			clif->message( fd, "You are now turn OFF @drop. You can't drop items now." );+		}+	}+	else {+		clif->message( fd, "Syntax: @drop on|off." );+		return false;+	}+	return true;+}+ /**  * Fills the reference of available commands in atcommand DBMap  **/@@ -9384,6 +9409,7 @@ void atcommand_basecommands(void) { 	 * Command reference list, place the base of your commands here 	 **/ 	AtCommandInfo atcommand_base[] = {+		ACMD_DEF(drop), 		ACMD_DEF2("warp", mapmove), 		ACMD_DEF(where), 		ACMD_DEF(jumpto),diff --git a/src/map/pc.c b/src/map/pc.cindex 2372d31..1c0c934 100644--- a/src/map/pc.c+++ b/src/map/pc.c@@ -4123,6 +4123,11 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount) 		return 0; //Can't drop items in nodrop mapflag maps. 	} +	if ( !sd->candrop ) {+		clif->message( sd->fd, "You can't drop items. Type '@drop on' to allow drop items." );+		return 0;+	}+ 	if( !pc->candrop(sd,&sd->status.inventory[n]) ) 	{ 		clif->message (sd->fd, msg_txt(263));diff --git a/src/map/pc.h b/src/map/pc.hindex bec4522..c84c9a3 100644--- a/src/map/pc.h+++ b/src/map/pc.h@@ -547,6 +547,8 @@ struct map_session_data { 	const char* delunit_prevfile; 	int delunit_prevline; +	bool candrop;+ };  #define EQP_WEAPON EQP_HAND_R
its should be simple to convert to rathena

Share this post


Link to post
Share on other sites
  • 0

 

its so simple that I can write this on the fly until I can cry

 src/map/atcommand.c | 26 ++++++++++++++++++++++++++ src/map/pc.c        |  5 +++++ src/map/pc.h        |  2 ++ 3 files changed, 33 insertions(+)diff --git a/src/map/atcommand.c b/src/map/atcommand.cindex b5e8fa7..af092eb 100644--- a/src/map/atcommand.c+++ b/src/map/atcommand.c@@ -9374,6 +9374,31 @@ static inline void atcmd_channel_help(int fd, const char *command, bool can_crea 	clif->message(fd,atcmd_output); 	return true; }++ACMD(drop) {+	if ( stristr( message, "on" ) ) {+		if ( sd->candrop )+			clif->message( fd, "You already turn on @drop." );+		else {+			sd->candrop = 1;+			clif->message( fd, "You are now turn ON @drop. You can drop items now." );+		}+	}+	else if ( stristr( message, "off" ) ) {+		if ( !sd->candrop )+			clif->message( fd, "You already turn off @drop" );+		else {+			sd->candrop = 0;+			clif->message( fd, "You are now turn OFF @drop. You can't drop items now." );+		}+	}+	else {+		clif->message( fd, "Syntax: @drop on|off." );+		return false;+	}+	return true;+}+ /**  * Fills the reference of available commands in atcommand DBMap  **/@@ -9384,6 +9409,7 @@ void atcommand_basecommands(void) { 	 * Command reference list, place the base of your commands here 	 **/ 	AtCommandInfo atcommand_base[] = {+		ACMD_DEF(drop), 		ACMD_DEF2("warp", mapmove), 		ACMD_DEF(where), 		ACMD_DEF(jumpto),diff --git a/src/map/pc.c b/src/map/pc.cindex 2372d31..1c0c934 100644--- a/src/map/pc.c+++ b/src/map/pc.c@@ -4123,6 +4123,11 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount) 		return 0; //Can't drop items in nodrop mapflag maps. 	} +	if ( !sd->candrop ) {+		clif->message( sd->fd, "You can't drop items. Type '@drop on' to allow drop items." );+		return 0;+	}+ 	if( !pc->candrop(sd,&sd->status.inventory[n]) ) 	{ 		clif->message (sd->fd, msg_txt(263));diff --git a/src/map/pc.h b/src/map/pc.hindex bec4522..c84c9a3 100644--- a/src/map/pc.h+++ b/src/map/pc.h@@ -547,6 +547,8 @@ struct map_session_data { 	const char* delunit_prevfile; 	int delunit_prevline; +	bool candrop;+ };  #define EQP_WEAPON EQP_HAND_R
its should be simple to convert to rathena

Thank you! I hope someone will also convert this to rathena :)

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.