Właściciel -_- 11 904 Opublikowano 22 Listopada Właściciel Udostępnij Opublikowano 22 Listopada [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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.