MySQL saving issue
#1

I've created a command to suspend somebody from a faction so they're unable to do any of the faction commands, however I do not know how to make it save to SQL, so whenever a person relogs the player variable is set back to 0 and thus they're unsuspended.

I have created a 'suspended' column in my MySQL database under 'accounts' table, but I'm not sure how to make the command save the variable. 0 would be where they're not suspended, and 1 would be suspended.

The commands are as follows;

pawn Код:
YCMD:suspend(playerid, params[], help) {
    if(help) {
        SendClientMessage(playerid, X11_WHITE, "Suspends a person in your faction, they'll be unable to use commands.");
        return 1;
    }
    new user,msg[128];
    if(GetPVarInt(playerid, "Faction") == 0) {
        SendClientMessage(playerid, X11_TOMATO_2, "You aren't in a faction.");
        return 1;
    }
    if(GetPVarInt(playerid, "Rank") < 10) {
        if(GetPVarInt(playerid, "Faction") != 1 || GetPVarInt(playerid, "Rank") < 10) {
            SendClientMessage(playerid, X11_TOMATO_2, "Your rank isn't high enough.");
            return 1;
        }
    }
    new fid = GetPVarInt(playerid, "Faction");
    if(!sscanf(params, "k<playerLookup>", user)) {
        if(!IsPlayerConnectEx(user)) {
            SendClientMessage(playerid, X11_TOMATO_2, "User not found");
            return 1;
        }
        if(GetPVarInt(user, "Faction") != fid) {
            SendClientMessage(playerid, X11_TOMATO_2, "This member is not in your faction");
            return 1;
        }
        format(msg, sizeof(msg), "* %s has been suspended by %s",GetPlayerNameEx(user, ENameType_RPName_NoMask), GetPlayerNameEx(playerid, ENameType_RPName_NoMask));
        SendFactionMessage(fid, COLOR_LIGHTBLUE, msg);
        SetPVarInt(user, "Suspended", 1);
    } else {
        SendClientMessage(playerid, X11_WHITE, "USAGE: /suspend [playerid]");
    }
    return 1;
}
pawn Код:
YCMD:unsuspend(playerid, params[], help) {
    if(help) {
        SendClientMessage(playerid, X11_WHITE, "Lifts a players suspension.");
        return 1;
    }
    new user,msg[128];
    if(GetPVarInt(playerid, "Faction") == 0) {
        SendClientMessage(playerid, X11_TOMATO_2, "You aren't in a faction.");
        return 1;
    }
    if(GetPVarInt(playerid, "Rank") < 10) {
        if(GetPVarInt(playerid, "Faction") != 1 || GetPVarInt(playerid, "Rank") < 10) {
            SendClientMessage(playerid, X11_TOMATO_2, "Your rank isn't high enough.");
            return 1;
        }
    }
    new fid = GetPVarInt(playerid, "Faction");
    if(!sscanf(params, "k<playerLookup>", user)) {
        if(!IsPlayerConnectEx(user)) {
            SendClientMessage(playerid, X11_TOMATO_2, "User not found");
            return 1;
        }
        if(GetPVarInt(user, "Faction") != fid) {
            SendClientMessage(playerid, X11_TOMATO_2, "This member is not in your faction");
            return 1;
        }
        format(msg, sizeof(msg), "* %s has been unsuspended by %s",GetPlayerNameEx(user, ENameType_RPName_NoMask), GetPlayerNameEx(playerid, ENameType_RPName_NoMask));
        SendFactionMessage(fid, COLOR_LIGHTBLUE, msg);
        SetPVarInt(user, "Suspended", 0);
    } else {
        SendClientMessage(playerid, X11_WHITE, "USAGE: /unsuspend [playerid]");
    }
    return 1;
}
Reply
#2

Well, check if anything atleast saves at onplayerdisconnect. And try to check out some tutorials about mysql if you havn't learned it yet
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)