SA-MP Forums Archive
/setvip command help - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /setvip command help (/showthread.php?tid=568164)



/setvip command help - WSMPenguin - 20.03.2015

I want to make a command that set player vip that I have done but I want to make log file for this command and I want to make "PROMOTED!" & "DEMOTED!" text to player who is promoted/demoted with message "Administrator %s has set you to VIP Status [Level:%d]" (DONE) but I want this too "Administrator %s has set you to Player Status [Level: %d]" I can't make this please help me. Here is the code:
pawn Код:
CMD:setvip(playerid, params[])
{
    if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, RCONERROR);
    {
        if(PlayerInfo[playerid][pVipLevel] == 1) { vrank = "Bronze V.I.P"; }
        else if(PlayerInfo[playerid][pVipLevel] == 2) { vrank = "Silver V.I.P"; }
        else if(PlayerInfo[playerid][pVipLevel] == 3) { vrank = "Gold V.I.P"; }
        {
            new victimname[MAX_PLAYER_NAME], vipname[MAX_PLAYER_NAME], viplevel, giveplayerid, string[128];
            if(sscanf(params, "ui", giveplayerid, viplevel)) return SendClientMessage(playerid, COLOR_DGRAY, "Syntax: /setvip [playerid] [level]");
            if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected");
            if(viplevel > 3 || viplevel < 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: Valid levels: 1-3");
            PlayerInfo[giveplayerid][pVipLevel] = viplevel;
            GetPlayerName(giveplayerid, victimname, sizeof(victimname));
            GetPlayerName(playerid, vipname, sizeof(vipname));
            PlayerInfo[giveplayerid][pVipLevel] = viplevel;
            GetPlayerName(giveplayerid, victimname, sizeof(victimname));
            GetPlayerName(playerid, vipname, sizeof(vipname));
           
            format(string,sizeof(string),"Administrator %s(%d) has set you to VIP Status! [Level: %i]", vipname, playerid, viplevel, giveplayerid);
            SendClientMessage(playerid, COLOR_AQUA, string);
            format(string, sizeof(string), ">> You set %s(%d) VIP level to '%i'", victimname, playerid, viplevel, giveplayerid);
            SendClientMessage(playerid, COLOR_DGRAY, string);
        }
    }
    return 1;
}



Re: /setvip command help - Jonggol - 20.03.2015

Try this.

pawn Код:
CMD:setvip(playerid, params[])
{
    if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, RCONERROR);
    {
        if(PlayerInfo[playerid][pVipLevel] == 1) { vrank = "Bronze V.I.P"; }
        else if(PlayerInfo[playerid][pVipLevel] == 2) { vrank = "Silver V.I.P"; }
        else if(PlayerInfo[playerid][pVipLevel] == 3) { vrank = "Gold V.I.P"; }
        {
            new victimname[MAX_PLAYER_NAME], vipname[MAX_PLAYER_NAME], notice[20],viplevel, giveplayerid, string[128];
            if(sscanf(params, "ui", giveplayerid, viplevel)) return SendClientMessage(playerid, COLOR_DGRAY, "Syntax: /setvip [playerid] [level]");
            if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected");
            if(viplevel > 3 || viplevel < 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: Valid levels: 1-3");
            PlayerInfo[giveplayerid][pVipLevel] = viplevel;
            if(PlayerInfo[giveplayerid][pVipLevel] > viplevel) { notice="Promoted"; }
            else notice="Demoted"; }
            GetPlayerName(giveplayerid, victimname, sizeof(victimname));
            GetPlayerName(playerid, vipname, sizeof(vipname));
            PlayerInfo[giveplayerid][pVipLevel] = viplevel;
            GetPlayerName(giveplayerid, victimname, sizeof(victimname));
            GetPlayerName(playerid, vipname, sizeof(vipname));
            format(string,sizeof(string),"Administrator %s(%d) has %s you to VIP Status! [Level: %i]", vipname, playerid,notice, viplevel, giveplayerid);
            SendClientMessage(playerid, COLOR_AQUA, string);
            format(string, sizeof(string), ">> You set %s(%d) VIP level to '%i'", victimname, playerid, viplevel, giveplayerid);
            SendClientMessage(playerid, COLOR_DGRAY, string);
        }
    }
    return 1;
}



Re: /setvip command help - WSMPenguin - 20.03.2015

I also need a log file to be created and the text will be:
[PROMOTED]: Admin %s has promoted %s to %d level
[DEMOTED]: Admin %s has demoted %s to %d level


Re: /setvip command help - fuckingcruse - 20.03.2015

Код:
        new string[128], string1[128], target[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pName, sizeof(pName));
        GetPlayerName(pID, target, sizeof(target));
        format(string, sizeof(string), "You have set %s Vip level to %i", target, value);
        SendClientMessage(playerid, -1, string);
        format(string, sizeof(string), "Your Vip level has been set to %i by %s", value, pName);
        SendClientMessage(pID, -1, string1);
        PlayerInfo[pID][pVip] = value;
If you need more Infomation post your Vip codes , full codes here i may edit it for you!!


Re: /setvip command help - KayJ - 20.03.2015

He means -
He want to make a .txt file that saves /setvip log


Re: /setvip command help - Loot - 20.03.2015

Код:
LogPromotions(playerid, targetid, vipLevel, bool: promotion = false)
{
	new File:file;
	if(!fexist("promotion_logs.txt")) // name of the file you want => will be created under scriptfiles folder
	{
		file = fopen("promotion_logs.txt", io_write);
	}
	else
	{
		file = fopen("promotion_logs.txt", io_append);
	}
	if(file)
	{
		new logData[124];

		if(promotion)
			format(logData, sizeof(logData),"[PROMOTED]: Admin %s has promoted %s to %d level\r\n", GetName(playerid), GetName(targetid), vipLevel);
		else
			format(logData, sizeof(logData),"[DEMOTED]: Admin %s has demoted %s to %d level\r\n", GetName(playerid), GetName(targetid), vipLevel);
		
		fwrite(file, logData);
		fclose(file);
	}
	return 1;
}

stock GetName(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, MAX_PLAYER_NAME);
	return name;
}

CMD:setvip(playerid, params[])
{
	if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, RCONERROR);
    {
		if(PlayerInfo[playerid][pVipLevel] == 1) { vrank = "Bronze V.I.P"; }
		else if(PlayerInfo[playerid][pVipLevel] == 2) { vrank = "Silver V.I.P"; }
		else if(PlayerInfo[playerid][pVipLevel] == 3) { vrank = "Gold V.I.P"; }
		{
			new victimname[MAX_PLAYER_NAME], vipname[MAX_PLAYER_NAME], viplevel, giveplayerid, string[128];
			if(sscanf(params, "ui", giveplayerid, viplevel)) return SendClientMessage(playerid, COLOR_DGRAY, "Syntax: /setvip [playerid] [level]");
			if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected");
			if(viplevel > 3 || viplevel < 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: Valid levels: 1-3");
			PlayerInfo[giveplayerid][pVipLevel] = viplevel;
			GetPlayerName(giveplayerid, victimname, sizeof(victimname));
			GetPlayerName(playerid, vipname, sizeof(vipname));
			PlayerInfo[giveplayerid][pVipLevel] = viplevel;
			GetPlayerName(giveplayerid, victimname, sizeof(victimname));
			GetPlayerName(playerid, vipname, sizeof(vipname));
			
			format(string,sizeof(string),"Administrator %s(%d) has set you to VIP Status! [Level: %i]", vipname, playerid, viplevel, giveplayerid);
			SendClientMessage(playerid, COLOR_AQUA, string);
			format(string, sizeof(string), ">> You set %s(%d) VIP level to '%i'", victimname, playerid, viplevel, giveplayerid);
			SendClientMessage(playerid, COLOR_DGRAY, string);

			if(viplevel > PlayerInfo[giveplayerid][pVipLevel]) // promoted <<
				LogPromotions(playerid, giveplayerid, viplevel, true);
			else
				LogPromotions(playerid, giveplayerid, viplevel);
		}
    }
	return 1;
}