Jump to content
Message added by IIIaKa,

In case you don't have AdvancedStatus, you should purchase the Bundle. The price is the same, but additionally, you'll receive AdvancedStatus.
P.S. Any suggestions for improvement will be taken into consideration.

14 Screenshots

  • 19.4k
  • 66
  • 451.81 kB

About Reputation Master

Adds a reputation system, similar to the well-known Infestation Survivor Stories(The WarZ).

More information on how the plugin works can be found at the bottom in the "Principle of work" section.

 

Ji0XU4D.png

  • The ability to create an unlimited number of reputations. The only condition is that their value ranges must not overlap;
  • The ability to flexibly customize the bar for each reputation;
  • The ability to automatically reset reputations upon detecting a wipe;
  • The ability to set a prefix for reputations;
  • The ability to show your reputation by waving to players;
  • The ability to see a player's reputation when aiming at them with scope items. Unfortunately, the reputation will also be displayed if a player is in certain bushes;
  • The ability to see the reputation of all players in the bandit zone;
  • The ability to prohibit players with a certain reputation from entering safe zones (except for the bandit zone). Also, notifying players about it;
  • The ability to set fake reputations to confuse players.

 

n8420aH.png

  • reputationmaster.vip - Provides the ability to set a fake rank value.
  • reputationmaster.admin - Provides the ability to set or reset reputation value to other players.

 

MOEpxmo.png

{
  "Chat command": "rep",
  "Is it worth enabling GameTips for messages?": true,
  "Is it worth using the AdvancedStatus plugin?": true,
  "Is it worth using ddraw to display reputation? NOTE: To use, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command": true,
  "Is it worth displaying reputation when aiming at a player with a scope(ddraw should be enabled)? NOTE: The player's reputation may be displayed in certain bushes": true,
  "Is it worth resetting reputations upon detecting a wipe?": true,
  "Is it worth forbidding bandits from visiting safe zones(except for Banditcamp)?": true,
  "The time in seconds during which a bandit can stay in the safe zone(except for Banditcamp) before being killed, making their loot available to everyone": 10.0,
  "The prefab name for the effect when a bandit is killed in the safe zone. An empty string disables the effect": "assets/prefabs/misc/xmas/advent_calendar/effects/open_advent.prefab",
  "The time in seconds during which self-defense will be active for a lawman after being attacked by another lawman": 900,
  "The minimum value limit for fake reputation": -10000.0,
  "The maximum value limit for fake reputation": 10000.0,
  "UI. Position - Left to Right": true,
  "UI. Position - AnchorMin": "1 0.9",
  "UI. Position - AnchorMax": "1 0.9",
  "UI. Position - OffsetMin": "-208 -15",
  "UI. Position - OffsetMax": "-16 15",
  "UI. Reputation Positive Value Image - URL": "https://i.imgur.com/HKqyHO8.png",
  "UI. Reputation Negative Value Image - URL": "https://i.imgur.com/mMdm55h.png",
  "UI. Added Value Sound - Prefab Name. An empty string disables the effect": "assets/bundled/prefabs/fx/notice/item.select.fx.prefab",
  "Wipe ID": null,
  "Version": {
    "Major": 0,
    "Minor": 1,
    "Patch": 4
  }
}

Note:

  • To use ddraw, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command.
  • The player's reputation may be displayed in certain bushes.

 

EuLVAdS.png

[
  {
    "Name": "Assassin",
    "Prefix": "⁎✧⁎ ",
    "MinValue": -3.40282347E+38,
    "MaxValue": -1000.0,
    "Reward": 20.0,
    "LawmanPenalty": 0.0,
    "AllowSafeZone": false,
    "BarSettings": {
      "Order": 20,
      "Height": 26,
      "Main_Color(Hex or RGBA)": "#FF341E",
      "Main_Transparency": 0.6,
      "Main_Material": "",
      "Image_Url": "https://i.imgur.com/CdDKpwv.png",
      "Image_Local(Leave empty to use Image_Url)": "",
      "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "",
      "Image_IsRawImage": false,
      "Image_Color(Hex or RGBA)": "#FF341E",
      "Image_Transparency": 1.0,
      "Is it worth enabling an outline for the image?": false,
      "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9",
      "Image_Outline_Transparency": 0.0,
      "Image_Outline_Distance": "0.75 0.75",
      "Text_Size": 14,
      "Text_Color(Hex or RGBA)": "#FF341E",
      "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the text?": false,
      "Text_Outline_Color(Hex or RGBA)": "#000000",
      "Text_Outline_Transparency": 1.0,
      "Text_Outline_Distance": "0.75 0.75",
      "SubText_Size": 12,
      "SubText_Color(Hex or RGBA)": "#FF341E",
      "SubText_Font": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the sub text?": false,
      "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5",
      "SubText_Outline_Transparency": 0.0,
      "SubText_Outline_Distance": "0.75 0.75"
    }
  },
  ...
  {
    "Name": "Civilian",
    "Prefix": "",
    "MinValue": -4.99,
    "MaxValue": 9.99,
    "Reward": 1.0,
    "LawmanPenalty": -1.0,
    "AllowSafeZone": true,
    "BarSettings": {
      "Order": 20,
      "Height": 26,
      "Main_Color(Hex or RGBA)": "#5EC0CA",
      "Main_Transparency": 0.6,
      "Main_Material": "",
      "Image_Url": "https://i.imgur.com/cgi9T1D.png",
      "Image_Local(Leave empty to use Image_Url)": "",
      "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "",
      "Image_IsRawImage": false,
      "Image_Color(Hex or RGBA)": "#5EC0CA",
      "Image_Transparency": 1.0,
      "Is it worth enabling an outline for the image?": false,
      "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9",
      "Image_Outline_Transparency": 0.0,
      "Image_Outline_Distance": "0.75 0.75",
      "Text_Size": 14,
      "Text_Color(Hex or RGBA)": "#5EC0CA",
      "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the text?": false,
      "Text_Outline_Color(Hex or RGBA)": "#000000",
      "Text_Outline_Transparency": 1.0,
      "Text_Outline_Distance": "0.75 0.75",
      "SubText_Size": 12,
      "SubText_Color(Hex or RGBA)": "#5EC0CA",
      "SubText_Font": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the sub text?": false,
      "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5",
      "SubText_Outline_Transparency": 0.0,
      "SubText_Outline_Distance": "0.75 0.75"
    }
  },
  ...
  {
    "Name": "Paragon",
    "Prefix": "⋆☆⋆ ",
    "MinValue": 1000.0,
    "MaxValue": 3.40282347E+38,
    "Reward": 20.0,
    "LawmanPenalty": -125.0,
    "AllowSafeZone": true,
    "BarSettings": {
      "Order": 20,
      "Height": 26,
      "Main_Color(Hex or RGBA)": "#0AFBFB",
      "Main_Transparency": 0.6,
      "Main_Material": "",
      "Image_Url": "https://i.imgur.com/6yzrXE0.png",
      "Image_Local(Leave empty to use Image_Url)": "",
      "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "",
      "Image_IsRawImage": false,
      "Image_Color(Hex or RGBA)": "#0AFBFB",
      "Image_Transparency": 1.0,
      "Is it worth enabling an outline for the image?": false,
      "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9",
      "Image_Outline_Transparency": 0.0,
      "Image_Outline_Distance": "0.75 0.75",
      "Text_Size": 14,
      "Text_Color(Hex or RGBA)": "#0AFBFB",
      "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the text?": false,
      "Text_Outline_Color(Hex or RGBA)": "#000000",
      "Text_Outline_Transparency": 1.0,
      "Text_Outline_Distance": "0.75 0.75",
      "SubText_Size": 12,
      "SubText_Color(Hex or RGBA)": "#0AFBFB",
      "SubText_Font": "RobotoCondensed-Bold.ttf",
      "Is it worth enabling an outline for the sub text?": false,
      "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5",
      "SubText_Outline_Transparency": 0.0,
      "SubText_Outline_Distance": "0.75 0.75"
    }
  }
]
  • MinRange, MaxRange - Range of values for the group rank;
  • Name - Name of the rank;
  • Reward - Reward for killing or reviving(divided by 2) a player in this rank. If the initiating player has IsLawman = true, the value will be positive, otherwise, it will be negative;
  • LawmanPenalty - Penalty for a peaceful player of this rank, for killing another peaceful player. If the target did not initiate this pvp first;
  • AllowSafeZone - Is this rank allowed to visit Safe Zones (except Bandit Camp)? The "Forbid bandits from visiting the SafeZone (except for Banditcamp)" config should be set to true.

Path: *SERVER*\oxide\data\ReputationMaster\ReputationRanks.json

 

DxI83SK.png

EN:
{
  "CmdNotAllowed": "You do not have permissions to use this command!",
  "CmdPlayerNotFound": "Player '{0}' not found! You must provide the player's name or ID.",
  "CmdMultiplePlayers": "Multiple players found: {0}",
  "CmdAdmin": "Available admin commands:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue* *nameOrId*(optional)</color> - Set a fake reputation for yourself or the specified player\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *floatValue* *nameOrId*(optional)</color> - Set a reputation value for yourself or the specified player\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info *nameOrId*(optional)</color> - Get full information about your reputation or the reputation of the specified player\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset all/*nameOrId*</color> - Reset the reputation of all players or the specified player\n\n--------------------------------------------------",
  "CmdMain": "Available commands:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue*</color> - Set a fake reputation\n\n--------------------------------------------------",
  "CmdFakePlayer": "Player '{0}' has been assigned a new fake reputation value: {1}({2})!",
  "CmdFakeNPC": "NPC '{0}' has been assigned a new fake reputation value: {1}({2})!",
  "CmdFakeSelf": "A new fake reputation value has been successfully set: {0}({1})!",
  "CmdSetPlayer": "Player '{0}' has been assigned a new reputation value: {1}({2})!",
  "CmdSetNPC": "NPC '{0}' has been assigned a new reputation value: {1}({2})!",
  "CmdInfoPlayer": "Player '{0}' reputation:\n<color=#D1AB9A>Reputation</color> - {1} ({2})\n<color=#D1AB9A>Fake Reputation</color> - {3} ({4})\n<color=#D1AB9A>Last Helper</color> - {5}\n\n--------------------------------------------------",
  "CmdInfoNPC": "NPC '{0}' reputation:\n<color=#D1AB9A>Reputation</color> - {1}({2})\n<color=#D1AB9A>Fake Reputation</color> - {3}({4})\n<color=#D1AB9A>Last Helper</color> - {5}\n\n--------------------------------------------------",
  "CmdResetAll": "{0} reputations have been successfully reset!",
  "CmdResetPlayer": "Player '{0}' reputation has been successfully reset!",
  "MsgReputation": "Reputation",
  "MsgShowPlayerReputation": "Player '{0}' reputation: {1}({2})",
  "MsgNewReputation": "Congratulations! You have received the reputation '{0}'!",
  "MsgSelfDefense": "You attacked a peaceful player '{0}'({1}) first. If they kill you within {2} minutes, they will not receive a penalty",
  "MsgSelfDefenseNoPenalty": "You killed a peaceful player '{0}'({1}). However, since they attacked you first, you will not be penalized",
  "MsgLawmanEnterBanditZone": "You have entered the Bandit Camp! Stay vigilant, this place is full of thugs!",
  "MsgLawmanLeaveBanditZone": "You have left the Bandit Camp! We recommend avoiding this area!",
  "MsgBanditEnterBanditZone": "Welcome to the Bandit Camp! We are glad to have you back!",
  "MsgBanditLeaveBanditZone": "You have left the Bandit Camp! We hope to see you again soon!",
  "MsgBanditEnterSafeZone": "You are not welcome here! If you do not leave this place, you will be killed in {0} seconds!",
  "MsgBanditLeaveSafeZone": "Do not come back here! People like you belong in the Bandit Camp!"
}
RU:
{
  "CmdNotAllowed": "У вас недостаточно прав для использования этой команды!",
  "CmdPlayerNotFound": "Игрок '{0}' не найден! Вы должны указать имя или ID игрока.",
  "CmdMultiplePlayers": "Найдено несколько игроков: {0}",
  "CmdAdmin": "Доступные админ команды:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение* *имяИлиАйди*(опционально)</color> - Установить ложную репутацию себе или указанному игроку\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *дробноеЗначение* *имяИлиАйди*(опционально)</color> - Установить репутацию себе или указанному игроку\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info *имяИлиАйди*(опционально)</color> - Получить всю информацию о своей репутации или репутации указанного игрока\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset all/*имяИлиАйди*</color> - Сбросить репутацию всем игрокам или указанному игроку\n\n--------------------------------------------------",
  "CmdMain": "Доступные команды:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение*</color> - Установить ложную репутацию\n\n--------------------------------------------------",
  "CmdFakePlayer": "Игроку '{0}' установлено новое ложное значение репутации: {1}({2})!",
  "CmdFakeNPC": "Боту '{0}' установлено новое ложное значение репутации: {1}({2})!",
  "CmdFakeSelf": "Новое значение ложной репутации успешно установлено: {0}({1})!",
  "CmdSetPlayer": "Игроку '{0}' установлено новое значение репутации: {1}({2})!",
  "CmdSetNPC": "Боту '{0}' установлено новое значение репутации: {1}({2})!",
  "CmdInfoPlayer": "Репутация игрока '{0}':\n<color=#D1AB9A>Репутация</color> - {1}({2})\n<color=#D1AB9A>Ложная репутация</color> - {3}({4})\n<color=#D1AB9A>Последний помощник</color> - {5}\n\n--------------------------------------------------",
  "CmdInfoNPC": "Репутация бота '{0}':\n<color=#D1AB9A>Репутация</color> - {1}({2})\n<color=#D1AB9A>Ложная репутация</color> - {3}({4})\n<color=#D1AB9A>Последний помощник</color> - {5}\n\n--------------------------------------------------",
  "CmdResetAll": "Успешно сброшено {0} репутаций!",
  "CmdResetPlayer": "Репутация игрока '{0}' успешно сброшена!",
  "MsgReputation": "Репутация",
  "MsgShowPlayerReputation": "Репутация игрока '{0}': {1}({2})",
  "MsgNewReputation": "Поздравляем! Вы получили репутацию '{0}'!",
  "MsgSelfDefense": "Вы первым атаковали мирного игрока '{0}'({1}). Если он вас убьет в течении {2} минут, то не получит штрафа",
  "MsgSelfDefenseNoPenalty": "Вы убили мирного игрока '{0}'({1}). Но так как он первым вас атаковал, вас не накажут",
  "MsgLawmanEnterBanditZone": "Вы пришли в Лагерь Бандитов! Будьте бдительны, здесь полно разных отморозков!",
  "MsgLawmanLeaveBanditZone": "Вы покинули Лагерь Бандитов! Советуем обходить это место!",
  "MsgBanditEnterBanditZone": "Добро пожаловать в Лагерь Бандитов! Мы рады вашему возвращению!",
  "MsgBanditLeaveBanditZone": "Вы покинули Лагерь Бандитов! Надеемся на скорое ваше возвращение!",
  "MsgBanditEnterSafeZone": "Вам здесь не рады! Если вы не покинете это место, то вас убьет через {0} секунд!",
  "MsgBanditLeaveSafeZone": "Больше сюда не возвращайтесь! Таким как вы место в Лагере Бандитов!"
}

 

OxWiTBA.png

  • fake *floatValue* - Set a fake reputation for yourself or the specified player. Permission "reputationmaster.vip" or "reputationmaster.admin" required
  • fake *floatValue* *nameOrId*(optional) - Set a fake reputation for yourself or the specified player. Permission "reputationmaster.admin" required;
  • set *floatValue* *nameOrId*(optional) - Set a reputation value for yourself or the specified player. Permission "reputationmaster.admin" required;
  • info *nameOrId*(optional) - Get full information about your reputation or the reputation of the specified player. Permission "reputationmaster.admin" required;
  • reset all/*nameOrId* - Reset the reputation of all players or the specified player. Permission "reputationmaster.admin" required.

Example:

  • /rep fake 150
  • /rep fake -40 iiiaka
  • /rep set 23 iiiaka

 

l9x1AEn.png

  • ReputationValueUpdated:
    • Called after the player's reputation value has changed. Works only for players that are not NPCs.

 

void ReputationValueUpdated(ulong userID, string repName, float repValue)
{
  Puts($"{userID} updated a reputation value to {repValue}. Current reputation rank is {repName}.");
}

 

  • ReputationUpdated:
    • Called after the player receives a new reputation rank. Works only for players that are not NPCs.

 

void ReputationUpdated(ulong userID, string oldRep, string newRep, bool isLawman, bool allowSafeZone, float repValue)
{
  Puts($"{userID} has updated their rank from {oldRep} to {newRep}. Is peaceful: {isLawman}\nSafe Zones: {allowSafeZone}\nReputation Value: {repValue}");
}

 

 

bLFQCAu.png

[PluginReference]
private Plugin ReputationMaster;

 

There are 4 api methods:

GetReputationValue:

Used to retrieve the reputation value, real or fake. Returns null on failure.
To call the GetReputationValue method, you need to pass 2 parameters:

  1. userID as a ulong;
  2. realRep as a bool. What reputation value to get, real or fake? This parameter is optional.
     
(float)(ReputationMaster?.Call("GetReputationValue", player.userID, true) ?? 0f);

 

GetReputationName:

Used to retrieve the reputation name, real or fake. Returns an empty string on failure.
To call the GetReputationName method, you need to pass 2 parameters:

  1. userID as a ulong;
  2. realRep as a bool. What reputation name to get, real or fake? This parameter is optional.
     
(string)(ReputationMaster?.Call("GetReputationName", player.userID, true) ?? string.Empty);

 

SetReputationValue:

Used to retrieve the reputation name, real or fake. Returns a false on failure.
To call the SetReputationValue method, you need to pass 3 parameters:

  1. Available options:
    • userID as a ulong or a string;
    • player as a BasePlayer.
  2. newValue as float;
  3. realRep as a bool. What reputation value to get, real or fake? This parameter is optional.
     
(bool)(ReputationMaster?.Call("SetReputationValue", player.UserIDString, 150f, true) ?? false);//(string)userID
(bool)(ReputationMaster?.Call("SetReputationValue", player.userID, 150f, true) ?? false);//(ulong)userID
(bool)(ReputationMaster?.Call("SetReputationValue", player, 150f, true) ?? false);//(BasePlayer)player ***recommended option***

 

SetReputationValues:

Used to retrieve the reputation name, real or fake. Returns a false on failure.
To call the SetReputationValues method, you need to pass 3 parameters:

  1. Available options:
    • userID as a ulong or a string;
    • player as a BasePlayer.
  2. value as float;
  3. fakeValue as a float.
     
(bool)(ReputationMaster?.Call("SetReputationValues", player.UserIDString, 150f, 50f) ?? false);//(string)userID
(bool)(ReputationMaster?.Call("SetReputationValues", player.userID, 150f, 50f) ?? false);//(ulong)userID
(bool)(ReputationMaster?.Call("SetReputationValues", player, 150f, 50f) ?? false);//(BasePlayer)player ***recommended option***

 

Gai1C3h.png

You can create as many reputation ranks as you want, but there are only two main groups:

  • Lawmen(peaceful or civilians);
  • Outlaws(bandits).

Each kill has a different scores depending of the reputation rank of the victim and attacker. For exampe, if you are a Civilian, you will receive:

  • Paragon: -20
  • Vigilant: -15
  • Guardian: -10
  • Lawman: -4
  • Deputy: -3
  • Constable: -2
  • Civillian: -1
  • Thug: +2
  • Outlaw: +3
  • Bandit: +4
  • Hitman: +10
  • Villain: +15
  • Assassin: +20

Reviving:

For reviving a player, you will receive a reward divided by 2. If the target is a lawman, the reward will be positive, else if a target is a bandit, it will be negative. Also, this is the only way out of bandit rank for bandits.

Outlaw:

When you reach the outlaw reputation, you have no more back! Except for reviving a peaceful player.
You can kill other bandits but still counting as negative reputation! So, after you reach the outlaw reputation rank, scores by killing a player of a certain reputation will be as follows(negative reward value) :

  • Paragon: -20
  • Vigilant: -15
  • Guardian: -10
  • Lawman: -4
  • Deputy: -3
  • Constable: -2
  • Civillian: -1
  • Thug: -2
  • Outlaw: -3
  • Bandit: -4
  • Hitman: -10
  • Villain: -15
  • Assassin: -20

Lawman:

The scores will be as follows for each kill a outlaw reputation ranks(positive reward value) :

  • Assassin: +20
  • Villain: +15
  • Hitman: +10
  • Bandit: +4
  • Outlaw: +3
  • Thug: +2

But for killing a peaceful player, you will receive penalties based on your rank. A list of penalties for each reputation rank:

  • Paragon: -125
  • Vigilante: -60
  • Guardian: -40
  • Lawman: -15
  • Deputy: -2
  • Constable: -1
  • Civilian: -1

 

There is also a self-defense system that works as follows: If a peaceful player initiates an attack on another peaceful player, a timer of 15 minutes(sets from config) is activated, during which the victim can kill the attacker without penalties.

 

So, it's very hard to become a lawman, and it's very easy to get out from lawman.

  • Like 1

User Feedback

1.6m

Downloads

Total number of downloads.

7.5k

Customers

Total customers served.

112.6k

Files Sold

Total number of files sold.

2.3m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

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.