Jump to content

Recommended Posts

hello guys, i want to make a ban command but i have a problem , this is the code:

ACMD(do_ban)
{
char arg1[256], arg2[256];
const char* name;
const char* reason;
if (!ch || ch->GetGMLevel() != GM_IMPLEMENTOR)
{
    sys_log(0, "do_ban without rights %s[%d]", ch->GetName(), ch->GetPlayerID());
    return;
}
two_arguments(argument, arg1, sizeof (arg1), arg2, sizeof(arg2));
if (!*arg1 || !*arg2)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "Correct command form: /ban <player name> <reason>");
    return;
}
name = arg1;
reason = arg2;
LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(name);
LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
if (!LCHARACTER)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "%s not found.", name);
    return;
}
if (LCHARACTER == ch)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "You cant ban yourself!");
    return;
}
if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "You cant do that.");
    return;
}
LCHARACTER = CHARACTER_MANAGER::instance().FindPC(name);
std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("UPDATE account.account SET status = 'BLOCK' WHERE id = %d", LCHARACTER->GetAID()));
std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("UPDATE player.player SET reason = %s WHERE id = %d", reason, LCHARACTER->GetAID()));
LDESC->DelayedDisconnect(5);
sys_log(0, "%s[%d] banned %s with reason: %s", ch->GetName(), ch->GetPlayerID(), name, reason);
ch->ChatPacket(CHAT_TYPE_INFO, "%s was banned with reason: %s", name, reason);
}

my problem is how i can use two directquery?

i get this when i try to compile:

cmd_gm.cpp:2836: error: redeclaration of 'std::auto_ptr<_SQLMsg> msg'
cmd_gm.cpp:2836: error: 'std::auto_ptr<_SQLMsg> msg' previously declared here
 

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

ACMD(do_ban)
{
char arg1[256], arg2[256];
const char* name;
const char* reason;
if (!ch || ch->GetGMLevel() != GM_IMPLEMENTOR)
{
    sys_log(0, "do_ban without rights %s[%d]", ch->GetName(), ch->GetPlayerID());
    return;
}
two_arguments(argument, arg1, sizeof (arg1), arg2, sizeof(arg2));
if (!*arg1 || !*arg2)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "Correct command form: /ban <player name> <reason>");
    return;
}
name = arg1;
reason = arg2;
LPDESC LDESC = DESC_MANAGER::instance().FindByCharacterName(name);
LPCHARACTER LCHARACTER = LDESC ? LDESC->GetCharacter() : NULL;
if (!LCHARACTER)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "%s not found.", name);
    return;
}
if (LCHARACTER == ch)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "You cant ban yourself!");
    return;
}
if (LCHARACTER->GetGMLevel() >= GM_LOW_WIZARD)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "You cant do that.");
    return;
}
LCHARACTER = CHARACTER_MANAGER::instance().FindPC(name);

  
DBManager::instance().DirectQuery("UPDATE account.account SET status = 'BLOCK' WHERE id = %d", LCHARACTER->GetAID());
DBManager::instance().DirectQuery("UPDATE player.player SET reason = %s WHERE id = %d", reason, LCHARACTER->GetAID());  

LDESC->DelayedDisconnect(5);
sys_log(0, "%s[%d] banned %s with reason: %s", ch->GetName(), ch->GetPlayerID(), name, reason);
ch->ChatPacket(CHAT_TYPE_INFO, "%s was banned with reason: %s", name, reason);
}

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.