Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
- - - - -

Achievements

osiągnięcia achieveements nvault

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
103 odpowiedzi w tym temacie

#1 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 12:44

*
Popularny

Dołączona grafika
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
Standardowa.
Dołączona grafika
Nvault,
HamSandwich,
Colorchat.
Dołączona grafika
say /ach
say_team /ach

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

Dołączona grafika
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 ).

Dołączona grafika
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.

Dołączona grafika
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

Dołączona grafika
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
  • 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.
Dołączona grafika
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!
Dołączona grafika
Wersja 1.1.0:
Załączony plik  achievements.sma   9,82 KB  471 Ilość pobrań
  achievements.amxx
Załączony plik  achievements.inc   804 bajtów  408 Ilość pobrań


Wersja 1.1.1:
Załączony plik  achievements.inc   1,02 KB  519 Ilość pobrań

Załączony plik  achievements.sma   8,69 KB  598 Ilość pobrań
  achievements.amxx
Misiaczek ;c (19.02.2012 19:01):
Aktualizacja na prośbę autora

  • +
  • -
  • 28

#2 Drzanas

    Godlike

  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 13:36

Jakieś profity są za zdobycie osiagnięć?
No i jakie są teraz te osiągniecia?
  • +
  • -
  • 0

graphic.png


#3 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 13:41

Hmm profity, prawdopodobnie chodzi ci o nagrody. Odpowiedź brzmi nie, ponieważ nie jest to potrzebne póki co. Jak będzie zapis sql to pomyśle nad web statami. Zaraz dodam do 1 posta liste achów.
  • +
  • -
  • 0

#4 FetaGreen

    Profesjonalista

  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:178
  • Imię:Łukasz
  • Lokalizacja:Nysa
Offline

Napisano 19.01.2012 15:56

10. Dziurawe rece - Zgub 1000 przedmiotow

Czyli jak wyrzuce G ?
  • +
  • -
  • 0

#5 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 16:09

10. Dziurawe rece - Zgub 1000 przedmiotow

Czyli jak wyrzuce G ?

Tak lub jeśli zginiesz i wypadną ci rzeczy.
  • +
  • -
  • 0

#6 Trikolo

    Miszczu

  • Zbanowany

Reputacja: 111
Zaawansowany

  • Postów:348
  • GG:
  • Imię:Trikolo
  • Lokalizacja:Komputer
Offline

Napisano 19.01.2012 17:20

Można by było dodać do tego jakieś nagrody exp albo coś ale dobra ...

#7 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 18:03

W wersji 1.0.1 będą natywy i możliwa ingerencja z cod modem.
  • +
  • -
  • 0

#8 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 19.01.2012 18:11

bardzo dobry plugin :)
  • +
  • -
  • 0

#9 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 19:13

Update 1.0.1
  • +
  • -
  • 0

#10 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 19.01.2012 19:19

11. Niewiarygodne - Zabij wroga headshotem z HE

może jestem ślepy ale w kodzie nie widzę byś wprowadził warunek że musi być headshot
  • +
  • -
  • 0

#11 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 19.01.2012 19:27

new hit = get_tr2(trace, TR_pHit);

  

    if(!is_user_connected(hit))

	    return;

  

    new hitzone = get_tr2(trace, TR_iHitgroup);

    if(hitzone == HIT_HEAD)

	    AchStatus[id][1]++;

  • +
  • -
  • 0

#12 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 19.01.2012 19:29

to nie jest ten challenge :)
  • +
  • -
  • 0

#13 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 19:32

Kod sharka, sprawdza czy nabój trafił w głowe.
kod odpowiadający za headshot granatem to:
if(killer!=victim && wpnindex == CSW_HEGRENADE)
AchStatus[killer][10]++;

W client_death
  • +
  • -
  • 0

#14 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 19.01.2012 19:34

fajne + :]
  • +
  • -
  • 0

#15 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:861
  • Imię:Łukasz
  • Lokalizacja:Wrocław
Offline

Napisano 19.01.2012 19:37

no wiem że tu ale wytłumacz gdzie dokładnie jest warunek o tym że ma być hs ? :D

btw. przydał by się jakiś przykład użycia natywów w oddzielnym pluginie bo nie wiem np. jak nazwać i dodać opis do takiego osiągnięcia skoro do dyspozycji są tylko natywy postępu

Użytkownik =ToRRent= edytował ten post 19.01.2012 19:42

  • +
  • -
  • 1

#16 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 19:44

o_O nie ma leci + zaraz poprawiam

@UP
Natywy do dodawania będą kiedy zamienię normalne tablice na dynamiczne.
  • +
  • -
  • 0

#17 _nothing_

    NO ACTA !

  • Zbanowany

Reputacja: 134
Zaawansowany

  • Postów:377
  • GG:
  • Imię:Nothing
  • Lokalizacja:Poland
Offline

Napisano 19.01.2012 20:32

no przydatny plugin !

#18 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 19.01.2012 20:45

Postaram się następną wersję dać za jakiś czas, aby dodać wiele nowego, oraz muszę wszystko dokładnie ztestować.
  • +
  • -
  • 0

#19 dasisdas

    Pomocny

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:58
  • Imię:Sebastian
  • Lokalizacja:Polska
Offline

Napisano 19.01.2012 21:04

Fajne,czekam na następną wersje:D
  • +
  • -
  • 0

#20 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 19.01.2012 21:23

Zywy lampion - Uzyj 1000 razy latarki
Czy są jakieś zabezpieczenia?

Wystarczy zbindować latarkę pod backspace i osiągnięcie odblokowane po jednej rundzie :P
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: osiągnięcia, achieveements, nvault

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych