Burgershot
  • Home
  • Members
  • Team
  • Help
  • Search
  • Register
  • Login
  • Home
  • Members
  • Help
  • Search
Burgershot SA-MP Pawn Scripting [Pawn] I need some help with my /whois command.

 
  • 0 Vote(s) - 0 Average
Pawn I need some help with my /whois command.
Stefhan
Offline

Burgershot Member
Posts: 11
Threads: 5
Joined: Apr 2019
Reputation: 2
#1
2019-04-17, 07:20 PM
So I am trying to create a /whois command that does the following:

You type '/whois character Sean_Johnson' for example.

As a result, you get this string/msgbox:

SQLID: 10
Account: Stefhan
Characters: Sean_Johnson, Carl_Johnson, Kendl_Johnson
CHRIDS: 40, 41, 49
Level: 10, 5, 8

However, the info required is in two seperate tables (accounts & characters), which is where I get stuck. I simply don't know how to proceed. Can anyone guide me further? What is an efficient way to do this? Am I even doing it right? I appreciate the assistance.

PHP Code:
CMD:whois(playerid, params[])
{
    if(Account[playerid][Admin] >= 2)
    {
        new subcmd[30], scmd_params[30];

        if(sscanf(params, "s[30]S()[30]",subcmd, scmd_params))
            return SendClientMessage(playerid, COLOR_INFO, "/whois [character/chrid/account/sqlid]");


        // whois character subcmd
        if(strmatch(subcmd, "character"))
        {
            new target[MAX_PLAYER_NAME], str[128];

            if(sscanf(params, "s[30]s[24]",subcmd, target))
                return SendClientMessage(playerid, COLOR_INFO, "/whois character [Character_Name(case sensitive)]");

            new query[250];
            mysql_format(MHRP_SQL, query, sizeof(query), "SELECT SQLID FROM characters WHERE CharName = '%e'",target);
            mysql_tquery(MHRP_SQL, query, "OnWhoIsCharacter", "is", playerid, target);
        }

        // whois chrid subcmd
        if(strmatch(subcmd, "chrid"))
        {

        }

        // whois account subcmd
        if(strmatch(subcmd, "account"))
        {
            
        
}

        // whois sqlid subcmd
        if(strmatch(subcmd, "sqlid"))
        {
            
        
}

        // if no strmatch
        else return SendClientMessage(playerid, COLOR_ERROR, "That subcommand does not exist.");
    }

    else return SendClientMessage(playerid,COLOR_ERROR,"You do not have the required access to execute this command.");

    return 1;
}

forward OnWhoIsCharacter(playerid, target[]);
public 
OnWhoIsCharacter(playerid, target[])
{
    if(cache_num_rows() != 1)
        return SendClientMessage(playerid, COLOR_ERROR, "That character does not exist.");

    new targetid;
    cache_get_value_name_int(0, "SQLID", targetid);

    mysql_format(MHRP_SQL, query, sizeof(query), "SELECT CHRID, CharName, Level FROM characters WHERE SQLID = %d LIMIT 3", targetid);
    mysql_tquery(MHRP_SQL, query, "OnWhoIsCharacterProcess", "ii", playerid, targetid);
    return 1;
}

forward OnWhoIsCharacterProcess(playerid, targetid);
public 
OnWhoIsCharacterProcess(playerid, targetid)
{
    new str[500], C_ID, C_Name[MAX_PLAYER_NAME], C_LVL;
    for( new id = 0; id < cache_num_rows(); id++)
    {
        cache_get_value_name_int(id, "CHRID", C_ID);
        cache_get_value_name(id, "CharName", C_Name);
        cache_get_value_name_int(id, "Level", C_LVL);

        format(str, sizeof(str), "%d %s %d\n", C_ID, C_Name, C_LVL);
        SendClientMessage(playerid, str);
    }

    new query[250];
    mysql_format(MHRP_SQL, query, sizeof(query), "SELECT Username FROM accounts WHERE SQLID = %d", targetid);
    mysql_tquery(MHRP_SQL, query);

    new A_Name[MAX_PLAYER_NAME];
    cache_get_value_name(0, "Username", A_Name[24]);
    return 1;
} 
mr_sacrimoni
Offline

Burgershot Member
Posts: 16
Threads: 3
Joined: Apr 2019
Reputation: 1
#2
2019-04-17, 07:33 PM
"SELECT c.SQLID, c.CHRID, c.CharName, c.Level, a.Username FROM characters c LEFT JOIN accounts a ON c.SQLID = a.SQLID
WHERE c.SQLID = %d"
Stefhan
Offline

Burgershot Member
Posts: 11
Threads: 5
Joined: Apr 2019
Reputation: 2
#3
2019-04-17, 07:45 PM
(2019-04-17, 07:33 PM)mr_sacrimoni Wrote: "SELECT c.SQLID, c.CHRID, c.CharName, c.Level, a.Username FROM characters c LEFT JOIN accounts a ON c.SQLID = a.SQLID
   WHERE c.SQLID = %d"

Thanks a lot, I managed to get it working now!
« Next Oldest | Next Newest »



  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Burgershot - Powered by our Community and MyBB Original Theme by Emerald

Linear Mode
Threaded Mode