Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- #include <YSI\y_ini>
- #define V "1.0"
- #define FS "Reputation Filterscript"
- #define N "Kitten"
- #define CHAT "{C3C3C3}ยป"
- #define PU "/Rep/%s.ini"
- enum PlayerRep
- {
- Rep
- };
- new pRep[MAX_PLAYERS][PlayerRep];
- new pName[24];
- forward LoadUser_data(playerid,name[],value[]);
- public OnFilterScriptInit() {
- print(""FS" "V" Loaded - By "N"");
- return 1;
- }
- public OnFilterScriptExit() {
- print(""FS" "V" Unloaded - By "N"");
- return 1;
- }
- public OnPlayerConnect(playerid) {
- pRep[playerid][Rep] = 0;
- if(fexist(UserPath(playerid))) {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- }
- else {
- FirstTimeRep(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason) {
- SaveRep(playerid);
- pRep[playerid][Rep] = 0;
- return 1;
- }
- public LoadUser_data(playerid,name[],value[]) {
- INI_Int("Rep",pRep[playerid][Rep]);
- return 1;
- }
- CMD:giverep(playerid,params[])
- {
- if(IsPlayerConnected(playerid)) {
- new targetid,giverep,reason[105],stringrep[256];
- if(sscanf(params,"uis[105]", targetid,giverep,reason)) return SendClientMessage(playerid,-1,""CHAT" /giverep [playerid] [amount] [reason]");
- if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""CHAT" Player is not online");
- if(targetid == playerid) return SendClientMessage(playerid,-1,""CHAT" You cannot give reputation to yourself");
- if(giverep < 1 || giverep > 5) return SendClientMessage(playerid,-1,""CHAT" You can only give reputation between 1-5");
- pRep[targetid][Rep] += giverep;
- format(stringrep,sizeof(stringrep),""CHAT" Player %s has given %d rep to %s [Reason: %s]", PlayerName(playerid), giverep, PlayerName(targetid), reason);
- SendClientMessageToAll(-1,stringrep);
- }
- return 1;
- }
- CMD:removerep(playerid,params[]) {
- if(IsPlayerAdmin(playerid)) { // Or replace this with your admin variable!
- new targetid,removerep,reason[105],stringrep[256];
- if(sscanf(params,"uis[105]", targetid,removerep,reason)) return SendClientMessage(playerid,-1,""CHAT" /removerep [playerid] [amount] [reason]");
- if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""CHAT" Player is not online");
- if(removerep < 1 || removerep > 50) return SendClientMessage(playerid,-1,""CHAT" You can only remove between 1-5 reputation");
- pRep[targetid][Rep] -= removerep;
- format(stringrep,sizeof(stringrep),""CHAT" Admin %s has removed %d rep from %s [Reason: %s]", PlayerName(playerid), removerep, PlayerName(targetid), reason);
- SendClientMessageToAll(-1,stringrep);
- }
- else return SendClientMessage(playerid,-1,""CHAT" You are not admin!");
- return 1;
- }
- CMD:rep(playerid,params[]) {
- new targetid, str[64];
- if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,-1,""CHAT" /rep [playerid]");
- if(IsPlayerConnected(targetid)) {
- format(str,sizeof(str),""CHAT" Player %s current reputation is %i",PlayerName(targetid),pRep[targetid][Rep]);
- SendClientMessage(playerid,-1,str);
- }
- return 1;
- }
- stock UserPath(playerid) {
- new string[128];
- format(string,sizeof(string),PU,PlayerName(playerid));
- return string;
- }
- stock PlayerName(playerid) {
- GetPlayerName(playerid, pName, 24);
- return pName;
- }
- stock SaveRep(playerid) {
- if(fexist(UserPath(playerid))) {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"Reputation");
- INI_WriteInt(File,"Rep",pRep[playerid][Rep]);
- INI_Close(File);
- }
- return 1;
- }
- stock FirstTimeRep(playerid) {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"Reputation");
- INI_WriteInt(File,"Rep",0);
- INI_Close(File);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement