Jump to content

liwanaganjo

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by liwanaganjo

  1. idepend on your ra version, if its, after r17151 (multimsg) change (wich look the case here)

    msg_txt(81)

    to

    msg_txt(sd,81)

     

    This is getting frustrating, I am deeply sorry for being such a burden.

     

    Anyway, it Compiled correctly though it warned me this:

     

    1>c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c(9188): warning C4013: 'guild_makemember' undefined; assuming extern returning 
     
     
    No error on console, It is usable in-game, it works! well, technically. I had to relog first to actually see that the character has joined the guild. Otherwise it won't count the character as part of the guild, Not even @refresh or @warp-ing to other places works as I hoped it would.
     
    You have been a great help mr. Lighta! I greatly appreciate it! Though if you could fix this little bug, I would be so thankful!
  2. Sadly it still gives me error on compilation.  /sob

    it says:

    Error    4    error C2059: syntax error : ')'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9172    1    map-server_sql
    Error    8    error C2059: syntax error : ')'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9178    1    map-server_sql
    Warning    1    warning C4003: not enough actual parameters for macro 'msg_txt'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9172    1    map-server_sql
    Warning    5    warning C4003: not enough actual parameters for macro 'msg_txt'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9178    1    map-server_sql
    Warning    9    warning C4013: 'guild_makemember' undefined; assuming extern returning int    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9188    1    map-server_sql
    Warning    3    warning C4024: 'map_msg_txt' : different types for formal and actual parameter 1    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9172    1    map-server_sql
    Warning    7    warning C4024: 'map_msg_txt' : different types for formal and actual parameter 1    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9178    1    map-server_sql
    Warning    2    warning C4047: 'function' : 'map_session_data *' differs in levels of indirection from 'int'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9172    1    map-server_sql
    Warning    6    warning C4047: 'function' : 'map_session_data *' differs in levels of indirection from 'int'    c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c    9178    1    map-server_sql
     
  3. this will work on rA with few work,

    1) change pc_isGM(sd) for something like pc_has_permission and create a force guildjoin permission, or if you want to stick with lvl change it to pc_get_group_level(sd). (that will compare both group lvl)

    2) add: pl_sd->guild_invite_account = sd->bl.id;

     

    nb : I would have use guild_reply_invite(pl_sd,guild_id,1); rather but it's ok how you did it too.

     

    int atcommand_joinguild(const int fd, struct map_session_data* sd, const char* command, const char* message)
    {
        struct map_session_data *pl_sd;
        struct guild *g;
        int guild_id_;
        struct guild_member m;
        nullpo_retr(-1, sd);
     
            memset(atcmd_output, '\0', sizeof(atcmd_output));
             memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
            sscanf(message, "%i,%23[^\n]", &guild_id_,atcmd_player_name);
        if (!message || !*message || !guild_id_ || !atcmd_player_name) {
            clif_displaymessage(fd, "Error. (usage: @joinguild <guild id>,<char name>).");
            return -1;
        }
     
        if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL) {
            clif_displaymessage(fd, msg_txt(3));
            return -1;
        }
     
        if (pc_get_group_level(sd) <  pc_get_group_level(pl_sd) )
          {    
            clif_displaymessage(fd, msg_txt(81));     
            return -1;
        }
     
       pl_sd->guild_invite = guild_id_;
       pl_sd->guild_invite_account = sd->bl.id;
       guild_reply_invite(pl_sd,guild_id_,1);
     
        clif_displaymessage(fd, "Player has joined selected guild.");
     
        return 0;
    }
    

     

    It gives me warning after I compile, It says;

     

     1>------ Build started: Project: map-server_sql, Configuration: Debug Win32 ------
    1>  atcommand.c
    1>c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c(9111): warning C4101: 'g' : unreferenced local variable
    1>c:\users\anjo\desktop\rathena - revision 17209\src\map\atcommand.c(9113): warning C4101: 'm' : unreferenced local variable
    1>  map-server_sql.vcxproj -> C:\Users\Anjo\Desktop\rathena - Revision 17209\vcproj-12\..\map-server_sql.exe
    ========== Build: 1 succeeded, 0 failed, 3 up-to-date, 0 skipped ==========

     

    Though in-game, I couldn't work, I followed the syntax correctly whereas '@joinguild 1,anjo' (for example) It would display the clif_displaymessage 'Player has joined selected guild'

    but with no luck, still unable to join.  /sob  I hope you have something else on your sleeves.

     

    Oh and I forgot to thank you for replying. Thank you /thx

  4. so this force join guild thing is this so you can listen to a certain guilds conversations?

     

    Thank you very much for replying! Actually, I need the @joinguild to force a player to join an existing guild. Im gonna make an NPC that would make them choose either (for example) Guild 1 or Guild 2, Then the npc will @joinguild the player :D It's possible, I already made that script but at eAthena, Right now all I need is the command. I know it's possible, I just don't know how to do it.

  5. Hello, Im desperately  in need of a 'force' guild join for my server. I did find one but it's on eAthena and sadly, I can't port to to rAthena. Thank you in advance!

     

    in case you need the eAthenean @joinguild script; here it is :D

     int atcommand_joinguild(const int fd, struct map_session_data* sd, const char* command, const char* message)
    {
        struct map_session_data *pl_sd;
        struct guild *g;
        int guild_id_;
        struct guild_member m;
        nullpo_retr(-1, sd);
     
            memset(atcmd_output, '\0', sizeof(atcmd_output));
             memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
            sscanf(message, "%i,%23[^\n]", &guild_id_,atcmd_player_name);
        if (!message || !*message || !guild_id_ || !atcmd_player_name) {
            clif_displaymessage(fd, "Error. (usage: @joinguild <guild id>,<char name>).");
            return -1;
        }
     
        if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL) {
            clif_displaymessage(fd, msg_txt(3));
            return -1;
        }
     
        if (pc_isGM(sd) < pc_isGM(pl_sd))
          {    
            clif_displaymessage(fd, msg_txt(81));     
            return -1;
        }
        
        if ((g = guild_search(pl_sd->status.guild_id))!= NULL)
          {
            clif_displaymessage(fd, "Target player appears to already be in a guild.");
            return -1;
        }
        
        guild_makemember(&m,pl_sd); //This is line 7631
        pl_sd->guild_invite = guild_id_;
        intif_guild_addmember(pl_sd->guild_invite, &m );
        clif_displaymessage(fd, "Player has joined selected guild.");
     
        return 0;
    }

     

    Oh! I almost forgot, I'm using rathena - Revision 17209

×
×
  • Create New...