კაროჩე, თამაშის სერვერი გავუშვი რომელზეც პლაგინების დაყენებაა შესაძლებელი რა და ამ პლაგინში რაღაცის შეცვლა მომინდა, უფრო პერსონალიზირებული რომ გამეხადა თამაში. პროგრამირების აზრზე არ ვარ, მაგრამ ძაან მინდოდა რომ შემეცვალა და გუშინ მთელი დღე და ღამე მოვანდომე და სიღრმეებში შევაღწიე პროგრამირების.. ხოდა მიზნის მიღწევამდე დამრჩა სულ ერთი, ბოლო ეტაპი და ვერაფრით ვერ გავიგე რა უნდა ვქნა. ესეიგი, ეს პლაგინი არის C#. ესეც კოდი, რომელსაც ვეჩალიჩები:
{
#region Declaration
private ConfigFile CFile;
private const string Perm = "nocraft.bypass";
private const string Perm1 = "nocraft.wusk";
private const string Perm2 = "nocraft.wsk";
private const string Perm3 = "nocraft.whd";
private const string Perm4 = "nocraft.wwd";
private const string Perm5 = "nocraft.cusk";
private const string Perm6 = "nocraft.csk";
private const string Perm7 = "nocraft.cart";
private const string Perm8 = "nocraft.wpn";
private const string Perm9 = "nocraft.eusk";
private const string Perm10 = "nocraft.esk";
ესენნი ზემოთ არის ნებართვები რა, რომელთა მიცემაც შემიძლია მოთამაშეებსვის, რომელთა არქონის შემთხვევაშიც, გარკვეულ ნივთებს ვერ აწარმოებენ. პრობლემა არის შემდგომში:
private void Init()=> permission.RegisterPermission(Perm, this);
ეს სტრიქონი არის, რომელიც მხოლოდ პირველ ნებართვაზე მაძლევს საშუალებას მივცე/არმივცე, რადგან მა პლაგინს მხოლოდ ეს ერთი ნებართვა ჰქონა რა და დანარჩენი მე ჩემით დავამატე.
ხოდა, როდესაც ამ სტრიქონში ვცვლი Perm-ს, რომელიმე სხვა ზემოთ, ჩემ მიერ დამატებული პერმიშენით(Perm1,Perm2,Perm7 და ა.შ.), ცალკეულად ყველაზე მუშაობს რა, მაგრამ გვერდზე რომ ვუმატებ (Perm, Perm1, Perm,2...., this) არ შეიძლება, მხოლოდ ერთი უნდა ეწეროსო. მსგავსი სტრიქონებიც ვცადე დამეკოპირებინა თითოეული პერმიშენისთვის ცალცალკე, მაგრამ მასე უკვე არც ერთს აღარ იძლევა...
ხოდა იქნებ იცოდეთ ვინმემ? ეს void და ბოლოს, this რა პონტია ვერ გავიგე, რა ფუნქციებია?
» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «
private object CanCraft(ItemCrafter itemCrafter, ItemBlueprint bp, int amount)
{
var player = itemCrafter.GetComponent<BasePlayer>();
var item = bp.GetComponent<ItemDefinition>();
if (permission.UserHasPermission(player.UserIDString, Perm))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm1))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm2))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm3))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm4))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm5))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm6))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm7))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm8))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm9))
return null;
if (permission.UserHasPermission(player.UserIDString, Perm10))
return null;