Root -_- 11,897 Posted November 22 Root Share Posted November 22 [CS 2] qCollectEvent - Zbieranie przedmiotów i tworzenie zestawów Aktualna wersja: 1.02 OPIS Plugin dodaje do gry event (komenda !event), który polega na zdobywaniu danych przedmiotów z zabójstwa, podłożenia bomby, rozbrojenia bomby, oczywiście z daną szansą na to i wymienianiu ich na zestawy, które to następnie wymieniamy na nagrody. Mamy do dyspozycji config, który pozwala nam samemu tworzyć te itemy i nazywać je w odpowiedni sposób, więc mamy pełny zakres działań jeśli chodzi o wygląd tegoż oto eventu. Po zebraniu danych przedmiotów możemy je wymienić na zestaw, a zestaw wymieniamy na nagrody, lecz opcja z menu nagród jest zrobiona pod API, więc w osobnym pluginie możemy napisać sobie to jak to ma działać (poniżej przykład z menu) Plugin już był testowany na moich super mocach jakieś parę miesięcy temu, ale teraz postanowiłem to rozbudowac właśnie oto API. Tak, mogę odpłatnie wykonać do tego nagrody public class CollectEventMenu : BasePlugin { public override string ModuleName => "qCollectEventMenu"; public override string ModuleVersion => "v1.0.0"; public override string ModuleAuthor => "-_- (Karol Skupien)"; public override string ModuleDescription => "Collect Event Menu"; public static PluginCapability<ICollectEventAPI> SharedPluginAPICapability { get; } = new("qcollectevent:api-plugin"); public static PlayerCapability<IPlayerCollectEventAPI> SharedPlayerAPICapability { get; } = new("qcollectevent:api-player"); private ICollectEventAPI? _pluginAPI; public override void Load(bool hotReload) { } public override void OnAllPluginsLoaded(bool hotReload) { // rejestrowanie api _pluginAPI = SharedPluginAPICapability.Get(); // rejestrowanie funkcji do której odwołamy się z menu _pluginAPI?.Hook_OnMenuCollectHandler(OnMenuHandler); } public override void Unload(bool hotReload) { // wyrejestrowanie funkcji do której odwołamy się z menu _pluginAPI?.Unhook_OnMenuCollectHandler(OnMenuHandler); } public void OnMenuHandler(CCSPlayerController clientId) { var menuData = new CenterHtmlMenu("Wymień nagrodę na NIC", this); menuData.AddMenuOption("Wymień", (clientId, option) => { // pobieranie danych gracza IPlayerCollectEventAPI? playerApiData = SharedPlayerAPICapability.Get(clientId); if (playerApiData == null) { clientId.PrintToChat("BŁĄD"); return; } // sprawdzanie ile ma zestawów - w tym przypadku nie blokuje wykonania by pokazać że działa if (playerApiData.EventKit <= 0) { clientId.PrintToChat("Nie masz zestawu, ale tym razem pozwolę Ci to wymienić"); } clientId.PrintToChat("Wymieniłeś jeden zestaw na nic"); // zabieramy jeden zestaw playerApiData.EventKit--; clientId.PrintToChat($"Masz teraz {playerApiData.EventKit} zestawów"); MenuManager.CloseActiveMenu(clientId); }); menuData.AddMenuOption("Nie wymieniaj", (clientId, option) => { MenuManager.CloseActiveMenu(clientId); }); menuData.Open(clientId); } } API namespace qCollectEventAPI { // dane gracza public interface IPlayerCollectEventAPI { int EventKit { get; set; } // ilość zestawów Dictionary<string, int> ItemsData { get; } // słownik z przedmiotami gracza } public interface ICollectEventAPI { delegate void OnMenuCollect(CCSPlayerController clientId); void Hook_OnMenuCollectHandler(OnMenuCollect handler); void Unhook_OnMenuCollectHandler(OnMenuCollect handler); } } CONFIG { // dane do bazy "Database": { "Hostname": "hostname", "Database": "database", "UserName": "username", "Password": "password" }, "DropChance": [ 10, 100 ], // szansa na drop: 1-100 <= 10 "LimitItems": 5, // limit posiadanego itemu danego typu // limity dla danych uprawnień "Limits": [ { "permission": "@qvip/vip", "limit": 0 // 0 = brak limitu } ], // tutaj podajemy jakie itemy się dropi żeby zebrać cały zestaw. Nie ma limitów przedmiotów "Items": [ { "code": "notebook", // oznaczenie przedmiotu (dla bazy oraz lang) "chance": 10 // szansa na dropniecie (sumuje wszystkie wartosci przedmiotów i tak losuje) }, { "code": "pen", "chance": 10 }, { "code": "pencilcase", "chance": 10 }, { "code": "backpack", "chance": 10 }, { "code": "book", "chance": 10 }, { "code": "sneakers", "chance": 10 } ] } KOMENDY css_event - menu eventu UPRAWNIENIA LISTA ZMIAN v1.0.2 (22.11.2024) 1. Dodano API 2. Zaktualizowano MysqlConnector CENNIK Plugin dostępny tylko dla osób w klubie. Dostęp do klubu jest płatny, napisz do @ -_- 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.