![]() |
|
Achievements - Printable Version +- CSHOT.PL - Pluginy amxx , plugins amxx , server game counter strike , serwery gier , forum (https://cshot.pl) +-- Forum: Counter-Strike (https://cshot.pl/forumdisplay.php?fid=54) +--- Forum: Counter-Strike 1.6 (https://cshot.pl/forumdisplay.php?fid=55) +---- Forum: PLUGINY (https://cshot.pl/forumdisplay.php?fid=62) +---- Thread: Achievements (/showthread.php?tid=1662) |
Achievements - Poster - 09-18-2025 [TITLE] Achievements [URL] https://amxx.pl/topic/71853-achievements/ Cześć, zaprezentuje wam system achievementów, niestety jedynie z zapisem nvault, ponieważ sql-a jeszcze nie zrozumiałem. Jeśli jest ktoś chętny to może pomóc w zapisie sql. Starałem się napisać ten plugin jak najbardziej optymalnie. W przyszłych wersjach postaram się dodać natywy i być może forwardy, aby każdy achievement był w oddzielnym pliku lub, aby wszystkie achievenemty były w jednym oddzielnym pliku.  Standardowa. Nvault, HamSandwich, Colorchat. say /ach say_team /ach Wyświetla menu ze statusem achievementów, po wyborze itemu w menu pojawia się jego opis i obecny stan. ach_display_gz 0/1 - standardowo 1, jeśli 0 to po zdobyciu acha nie wyświetla "Gratulacje %s! Zdobyłeś osiągnięcie %s!", jest stworzone, ponieważ forwardem możemy robić to sami ( forward nie testowany ). W obecnej wersji nie ma cvarów, bo nie widziałem takiej konieczności. Pierwszy raz pracował z tak dużą ilością (jak na mnie) zdarzeń silnika gry. Możliwe że zamiast używać Fakemety HamSandiwch i CSX wystarczyło użyć samej kanapki, lecz jeśli tak to w przyszłej wersji. Póki co mamy do dyspozycji 11 osiągnięć oczywiście dodam więcej. Dodawanie achievementów jest o tyle fajne, iż nawet na nvault nie jest wymagane resetowanie zapisu ani edytowanie go co dodanie osiągnięcia. Sprawdzenie czy osiągniecie jest zaliczone występuję jedynie w HamSpawn. Mam nadzieję, że spodoba wam się mój plugin. Proszę pisać komentarze przede wszystkim z uzasadnieniem. native ach_get_index(const name[]); native ach_get_stance(id, ach_id); // pobiera czy gracz zaliczył acha czy nie 0/1 native ach_get_status(id, ach_id); // pobiera postęp w achu native ach_get_name(ach_id, const var[], len); // pobiera nazwe acha native ach_get_desc(ach_id, const var[], len); // pobiera opis acha native ach_get_target(ach_id); // pobiera cel acha (wymagany postep) native ach_get_max(); // pobiera ilosc stworzonych achow native ach_set_stance(id, ach_id, value); // ustawia stan acha native ach_set_status(id, ach_id, value); // ustawia postep w acha native ach_add(const ach_name[], const ach_desc[], ach_target); native ach_reset_status(id, ach_id); // resetuje postep acha (ustawia na 0) przydatne jezeli robimy achy typu w rundzie native ach_add_status(id, ach_id, value); // dodaje x punktów do obecnej wartosci postepu acha forward ach_give_reward(pid, aid); // wywolywany kiedy gracz otrzymuje info o ukończeniu acha ( możemy mu tu dać nagrode ). forward ach_load_post( id ); // wywolywany po wczytaniu danych, aby bezpiecznie operowac w client_authorized <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt=':)' /> forward ach_save_pre( id, save_in ); // wywoływany przed zapisem danych, dobrze jest tu zmienić na przykład wartość postępu, aby nie kolidować z systemem forward ach_save_post( id, save_in ); // wywolywany po zapisie danych. save_in może mieć 2 wartości: #define SAVE_IN_DISCONNECT 1 #define SAVE_IN_DEATH 2 Wartość 1 jest wywoływana przy wyjściu z serweru, a 2 przy śmierci gracza. Oczywiście przy wyjściu z serwera nie wywołuje się ach_save_post, bo to nie miałoby sensu. Oświadczam wam, że pracuje teraz nad nową wersją.  * 1.0.0 Podstawowa wersja. * 1.0.0b łatka i dodanie kilku achów Dodana łatka Dodanie kilku achów * 1.0.1 Dodanie 4 natywów Możliwość dostawania w nagrodę za ukończenie acha xp-a w nowym cod modzie Łatka [dzięki torrent] * 1.0.1b Wymagany moduł engine Naprawa acha "Żywy lampion" Naprawa acha "Pan śmierci" Nowy cvar Forward wywoływany podczas otrzymania acha ( nie testowany ) * 1.0.1c Łatka zapisu * 1.0.2 Dodanie natywów Dodanie forwardu * 1.1.0 Użycie tablic dynamicznych (dzięki DarkGL i Muzzi za pomoc przy tablicach) Dodanie natywów Usunięcie achów, ponieważ możemy je tworzyć sami jak klasy do coda * 1.1.1 Optymalizacja. Dodanie 3 nowych forwardów. Usunięcie kilku zbędnych natywów. Przykładowy kod z użyciem forwardu: #include <amxmodx> #include <achievements> public plugin_init() { register_plugin("test", "1.0", "Fili:P") } public ach_give_reward(pid, aid) { client_print(pid, print_chat, "Zaliczyles acha!"); } Przykładowy kod tworzący acha w oddzielnym pluginie: #include <amxmodx> #include <achievements> new g_HandleAch; public plugin_init() { register_plugin("achy", "1.0", "Fili:P") g_HandleAch = ach_add("Staly bywalec", "Wejdz 1000 razy na serwer", 1000); } public client_putinserver(id) { ach_add_status(id, g_HandleAch, 1); } _**Radze opozniac taskiem funkcje, ktore bd w chwili wejscia na serwer**_ Projekt nie będzie już rozwijany, chyba że zrozumiem sqlx. Mogą występować błędy kiedy usuwamy achy. Zakazuje kopiowania treści na inne witryny bez mojej zgody! Wersja 1.1.0: [](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=31786 "Pobierz załącznik") [**achievements.sma**](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=31786 "Pobierz załącznik") **9,82 KB** 511 Ilość pobrań [ **achievements.amxx**](/kompilator/plugin/31786"Pobierz plik AMXX") [](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=30285 "Pobierz załącznik") [**achievements.inc**](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=30285 "Pobierz załącznik") **804 bajtów** 448 Ilość pobrań Wersja 1.1.1: [](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=47413 "Pobierz załącznik") [**achievements.inc**](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=47413 "Pobierz załącznik") **1,02 KB** 562 Ilość pobrań [](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=47414 "Pobierz załącznik") [**achievements.sma**](https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=47414 "Pobierz załącznik") **8,69 KB** 640 Ilość pobrań [ **achievements.amxx**](/kompilator/plugin/47414"Pobierz plik AMXX") Załączniki: achievements.inc achievements.sma |