Jump to content
  • 0

Please help Guildjoin buildin


Question

Posted

Please help this to work with latest rathena.

 src/map/script.c | 26 ++++++++++++++++++++++++++

 1 file changed, 26 insertions(+)

 

diff --git a/src/map/script.c b/src/map/script.c

index be346cb..4d373bd 100644

--- a/src/map/script.c

+++ b/src/map/script.c

@@ -18508,10 +18508,36 @@ bool script_hp_add(char *name, char *args, bool (*func)(struct script_state *st)

        return script->add_builtin(&buildin, true);

 }

 

+BUILDIN(guildjoin) {

+       int guild_id = script_getnum(st,2);

+       TBL_PC * sd;

+       struct guild * g;

+       if ( !( sd = map->charid2sd( script_getnum(st,3) ) ) ) {

+               script_pushint(st,-1);

+               return false;

+       }

+       if ( sd->status.guild_id ) {

+               script_pushint(st,-2);

+               return false;

+       }

+       if ( !( g = guild->search( guild_id ) ) ) {

+               script_pushint(st,-3);

+               return false;

+       }

+       if ( g->max_member >= MAX_GUILD ) {

+               script_pushint(st,-4);

+               return false;

+       }

+       sd->guild_invite = guild_id;

+       script_pushint( st, guild->reply_invite( sd, guild_id, 1 ) );

+       return true;

+}

+

 #define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args }

 #define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args }

 void script_parse_builtin(void) {

        struct script_function BUILDIN[] = {

+               BUILDIN_DEF(guildjoin,"ii"),

                // NPC interaction

                BUILDIN_DEF(mes,"s*"),

                BUILDIN_DEF(next,""),

 

9 answers to this question

Recommended Posts

  • 0
Posted (edited)

Add to src/custom/script.inc

// Guild Join command
BUILDIN_FUNC(guildjoin) {
	int guild_id = script_getnum(st,2);
	TBL_PC *sd;
	struct guild *g;
	if ( !( sd = map_charid2sd( script_getnum(st,3) ) ) ) {
			script_pushint(st,-1);
			return false;
	}
	if ( sd->status.guild_id ) {
			script_pushint(st,-2);
			return false;
	}
	if ( !( g = guild_search( guild_id ) ) ) {
			script_pushint(st,-3);
			return false;
	}
	if ( g->max_member >= MAX_GUILD ) {
			script_pushint(st,-4);
			return false;
	}
	sd->guild_invite = guild_id;
	script_pushint( st, guild_reply_invite( sd, guild_id, 1 ) );
	return true;
}

Add to src/custom/script_def.inc

	// Guild Join command
	BUILDIN_DEF(guildjoin,"ii"),
Edited by Anacondaqq
  • 0
Posted

 

Add to src/custom/script.inc

// Guild Join command
BUILDIN_FUNC(guildjoin) {
	int guild_id = script_getnum(st,2);
	TBL_PC *sd;
	struct guild *g;
	if ( !( sd = map_charid2sd( script_getnum(st,3) ) ) ) {
			script_pushint(st,-1);
			return false;
	}
	if ( sd->status.guild_id ) {
			script_pushint(st,-2);
			return false;
	}
	if ( !( g = guild_search( guild_id ) ) ) {
			script_pushint(st,-3);
			return false;
	}
	if ( g->max_member >= MAX_GUILD ) {
			script_pushint(st,-4);
			return false;
	}
	sd->guild_invite = guild_id;
	script_pushint( st, guild_reply_invite( sd, guild_id, 1 ) );
	return true;
}

Add to src/custom/script_def.inc

	// Guild Join command
	BUILDIN_DEF(guildjoin,"ii"),

How is this script work?

guildjoin <guildid>,<charid>; ??

  • 0
Posted

 

 

Add to src/custom/script.inc

// Guild Join command
BUILDIN_FUNC(guildjoin) {
	int guild_id = script_getnum(st,2);
	TBL_PC *sd;
	struct guild *g;
	if ( !( sd = map_charid2sd( script_getnum(st,3) ) ) ) {
			script_pushint(st,-1);
			return false;
	}
	if ( sd->status.guild_id ) {
			script_pushint(st,-2);
			return false;
	}
	if ( !( g = guild_search( guild_id ) ) ) {
			script_pushint(st,-3);
			return false;
	}
	if ( g->max_member >= MAX_GUILD ) {
			script_pushint(st,-4);
			return false;
	}
	sd->guild_invite = guild_id;
	script_pushint( st, guild_reply_invite( sd, guild_id, 1 ) );
	return true;
}

Add to src/custom/script_def.inc

	// Guild Join command
	BUILDIN_DEF(guildjoin,"ii"),

How is this script work?

guildjoin <guildid>,<charid>; ??

 

 

yes. Both parameters are required.

  • 0
Posted

 

 

 

Add to src/custom/script.inc

// Guild Join command
BUILDIN_FUNC(guildjoin) {
	int guild_id = script_getnum(st,2);
	TBL_PC *sd;
	struct guild *g;
	if ( !( sd = map_charid2sd( script_getnum(st,3) ) ) ) {
			script_pushint(st,-1);
			return false;
	}
	if ( sd->status.guild_id ) {
			script_pushint(st,-2);
			return false;
	}
	if ( !( g = guild_search( guild_id ) ) ) {
			script_pushint(st,-3);
			return false;
	}
	if ( g->max_member >= MAX_GUILD ) {
			script_pushint(st,-4);
			return false;
	}
	sd->guild_invite = guild_id;
	script_pushint( st, guild_reply_invite( sd, guild_id, 1 ) );
	return true;
}

Add to src/custom/script_def.inc

	// Guild Join command
	BUILDIN_DEF(guildjoin,"ii"),

How is this script work?

guildjoin <guildid>,<charid>; ??

 

 

yes. Both parameters are required.

 

This script is so unstable, some time it work, some time not...

Could you check again for me please? thanks

  • 0
Posted (edited)

saying its unstable, then asking to check it for YOU,
thats....idk

if it sometimes work and sometimes not,
prolly problem is in your side, not in the script.

Edited by benching
  • 0
Posted

Well, i'm posting the code here to asking if the code is wrong somewhere...

The script i put in the npc is too simple ...

one day it worked, now it's stop working, just asking again if the code broken somewhere...

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