Sign In

Sign In

    1. Created 15 September 2025

    CSHOT

    Siec tworzona z pasja, prężnie rozwijajacą się. Posiadamy serwery CS 1.6. Każdy znajdzie u nas coś dla siebie. Profesjonalne podejście administracji jak i adminów tworzy wspaniałą atmosferę na sieci. Jeśli masz

    1. Created 15 September 2025

    CSHOT

    Siec tworzona z pasja, prężnie rozwijajacą się. Posiadamy serwery CS GO. Każdy znajdzie u nas coś dla siebie. Profesjonalne podejście administracji jak i adminów tworzy wspaniałą atmosferę na sieci. Jeśli masz c

Partners

Awatar autora

Achievements

Created Today  in PLUGINY  by Poster
[TITLE] Achievements
[URL] https://amxx.pl/topic/71853-achievements/


[Image: amxxopis.png]
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.

![Dołączona
grafika](http://img193.imageshack.us/img193/8025/...alacja.png)
Standardowa.
[Image: amxxmoduly.png]
Nvault,
HamSandwich,
Colorchat.
[Image: amxxcmd.png]
say /ach
say_team /ach

Wyświetla menu ze statusem achievementów, po wyborze itemu w menu pojawia się
jego opis i obecny stan.

[Image: amxxcvary.png]



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 ).



[Image: amxxinne.png]
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.

[Image: amxxnatywy.png]



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



[Image: amxxforwardy.png]



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ą.
![Dołączona
grafika](http://img407.imageshack.us/img407/2309/...ngelog.png)

* 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.
[Image: amxxdodatki.png]
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!
[Image: amxxdownload.png]
Wersja 1.1.0:
[![Załączony
plik](https://amxx.pl/public/style_extra/mime_...h_id=31786
"Pobierz załącznik")
[**achievements.sma**](https://amxx.pl/index.php?app=core&modul...h_id=31786
"Pobierz załącznik") **9,82 KB** 511 Ilość pobrań
[[Image: amxx.gif]**achievements.amxx**](/kompilator/plugin/31786
"Pobierz plik AMXX")
[![Załączony
plik](https://amxx.pl/public/style_extra/mime_...h_id=30285
"Pobierz załącznik")
[**achievements.inc**](https://amxx.pl/index.php?app=core&modul...h_id=30285
"Pobierz załącznik") **804 bajtów** 448 Ilość pobrań


Wersja 1.1.1:
[![Załączony
plik](https://amxx.pl/public/style_extra/mime_...h_id=47413
"Pobierz załącznik")
[**achievements.inc**](https://amxx.pl/index.php?app=core&modul...h_id=47413
"Pobierz załącznik") **1,02 KB** 562 Ilość pobrań

[![Załączony
plik](https://amxx.pl/public/style_extra/mime_...h_id=47414
"Pobierz załącznik")
[**achievements.sma**](https://amxx.pl/index.php?app=core&modul...h_id=47414
"Pobierz załącznik") **8,69 KB** 640 Ilość pobrań
[[Image: amxx.gif]**achievements.amxx**](/kompilator/plugin/47414
"Pobierz plik AMXX")





Załączniki:
achievements.inc
achievements.sma