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

Quests system(Misje, zadania)

misja misje zadania zadanie questy quest quests nvault colorchat tworzenie

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

#1 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

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

Napisano 20.02.2012 16:41

*
Popularny

Zadania aka Misje | Questy
by Fili:P

opis
Plugin, jest edytowanym systemem achów, dzięki niemu sami w prosty sposób możemy pisać questy na nasz serwer. Działa na zapisie nvault. Jest przeróbką mojego pluginu: amxx.pl/topic/71853-achievements/
Mam nadzieję że wam się spodoba. Nie będę go raczej rozwijał, jedynie naprawiał bugi jeżeli takowe zaistnieją i być może jeśli będę dysponował dobrym i pewnym zapisem sql to oczywiście dodam go do tego pluginu.

cvary
W tej wersji mamy do dyspozycji tylko 1 cvar:
quest_display_gz 1 // standardowo 1, czy ma wyświetlać informację o ukończeniu questa ? (1 tak, 0 nie)
quest_maxgot 2 // standardowo 2, ile mozna miec przyjetych questow na raz

//cvary do sql:
quest_sql_host "localhost" // host do bazy danych
quest_sql_login "root" // login do bazy danych
quest_sql_password "" // haslo do bazy danych
quest_sql_dbname "quests" // nazwa bazy danych

wymagane moduly
NVault lub SQLx
HamSandwich
ColorChat

Aby włączyć zapis SQL w lini 12 zamieniamy:
//#define SQL

Na:
#define SQL


Oraz kompilujemy ponownie.

komendy
say /quest
say_team /quest

Wyświetla menu główne questów.

Dołączona grafika

native quest_get_progress(id, quest_id); // zwraca postep w zadaniu
native quest_get_status(id, quest_id); // zwraca czy zadanie zostalo ukonczone (1 lub 0)
native quest_get_name(quest_id, const var[], len); // zwraca nazwe zadania do tablicy (max. dlugosc nazwy: 31 znaków (32-1))
native quest_get_desc(quest_id, const var[], len); // zwraca opis zadania do tablicy (max. dlugosc opisu: 255 znaków (256-1))
native quest_get_target(quest_id); // zwraca cel zadania (liczbe int)
native quest_get_max(); // zwraca ilosc dodanych zadan
native quest_set_name(quest_id, const quest_name[]); // ustawia nazwe zadaniu
native quest_set_desc(quest_id, const quest_desc[]); // ustawia opis zadaniu
native quest_set_target(quest_id, quest_target); // ustawia cel zadania
native quest_set_progress(id, quest_id, value); // ustawia postep w zadaniu
native quest_set_status(id, quest_id, value); // ustawia czy zadanie jest ukonczone (1 lub 0)
native register_quest(const quest_name[], const quest_desc[], quest_target, const quest_reward[]); // rejestruje nowe zadanie
native quest_reset_status(id, quest_id); // resetuje postep w zadaniu
native quest_add_status(id, quest_id, value); // dodaje do obecnego postepu w zadaniu wartosc 3 argumentu


Dołączona grafika
forward quest_give_reward(pid, qid);

Wywoływany w momencie zaliczenia misji, dzięki niemu możemy dawać nagrodę za wykonanie misji.

forward quest_user_accept(id, qid);

Wywoływany w momencie kiedy gracz przyjmuje zadanie

forward quest_user_abandon(id, qid);

Wywoływany w momencie kiedy gracz rezygnuje z zadania.

inne informacje
20 luty 2012r : Ideyntyfikator zadania to uchwyt od register_quest. Biblioteka z natywami nazywa się quests.

22 luty 2012r : Od wersji 1.1 możemy przyjmować zadania, rezygnować z nich oraz przeglądać zaliczone zadania. Planuję jeszcze max. 2 aktualizacje (PA i SQL). Według mnie pod względem wizualnym wygląda to nieźle. Pomysły na nowe forwardy i natywy mile widziane. Od teraz register_quest ma nowy arguent, jest to string, w którym wpisujemy nazwę nagrody, lecz samą nagrodę musimy dawać ręcznie w quest_give_reward.

23 luty 2012r : arex92 zmotywował mnie swoim komentarzem i od dnia dzisiejszego mamy do wyboru zapis sql lub nvault, webstats postaram się zrobić do końca tygodnia.

23 luty 2012r : zamieniłem ostatni argument natywu register_quest na niewymagany.

Tworzenie questów
Tutaj opiszę jak tworzymy nowe questy.
Na początku musimy zarejestrować quest najlepiej zrobić to w plugin_init.

new g_QuestHandle1;

public plugin_init()
{
// ...
g_QuestHandle1 = register_quest("Mój quest", "Opis questu", 12, "Nagroda za quest");
}

Zmienna g_QuestHandle1 jest uchwytem do naszego zadania.
Za pomocą funkcji register_quest dodajemy nowe zadanie. Jej pierwszy argument to nazwa zadania, drugi to opis zadania, trzeci to cel zadania, ostatni czwarty nie jest wymagany możemy go nie uwzględniać jest to nazwa nagrody za ukończenie zadania. W tym momencie zadanie jest niemożliwe do ukończenia. Teraz w odpowiednim momencie musimy zwiększać wartość stanu zadania za pomocą quest_add_status. Przykład:

quest_add_status(g_QuestHandle1, 1);


Rejestracja nagrody:

public quest_give_reward(id, qid)
{
if(qid==g_QuestHandle1 && id)
{
// tutaj dodajemy nagrodę za zadanie o id g_QuestHandle1
}
}


Przykładowe zadanie:
#include <amxmodx>
#include <quests>
#include <cstrike>
#include <hamsandwich>

new qHandle1;

public plugin_init(){
register_plugin("Przykladowy quest", "1.0", "Fili:P");
RegisterHam(Ham_TakeDamage, "player", "ham_td", 1);
qHandle1 = register_quest("Niszczyciel", "Zadaj 10000 obrazen wrogom", 10000, "1000$");
}
public ham_td(this, idinflict, idattacker, Float:damage, damagebits)
{
if(this == idattacker)
return 1;
if(get_user_team(this) == get_user_team(idattacker))
return 1;
if(!idattacker)
return 1;

quest_add_status(idattacker, qHandle1, floatround(damage));
return 1;
}
public quest_give_reward(id, qid)
{
if(qid == qHandle1 && id)
cs_set_user_money(id, cs_get_user_money(id)+1000, 1);
}


Zakazuje kopiowania treści na inne witryny bez mojej zgody!


download
Załączony plik  quests.amxx   21,14 KB  7 Ilość pobrań

Załączony plik  quests.sma   21,81 KB  883 Ilość pobrań
  quests.amxx
Załączony plik  quests.inc   1,15 KB  673 Ilość pobrań

  • +
  • -
  • 9

#2 Kamil17

    Ogar :)

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:449
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Płońsk
Offline

Napisano 20.02.2012 17:32

@ UP Pytanie mam , a czy można zastosować to żeby zrobić takie questy ? w tym temacie masz ss'y http://amxx.pl/topic...nowych-questow/

#3 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 20.02.2012 17:50

to są takie questy, których nie trzeba brać
  • +
  • -
  • 0

#4 ToRRent

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

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

Napisano 20.02.2012 18:03

to czym różnią się achy od questów ?
  • +
  • -
  • 0

#5 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 20.02.2012 18:16

Hmm trafna uwaga, szykuje spory update co do pluginu
  • +
  • -
  • 0

#6 Kamil17

    Ogar :)

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:449
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Płońsk
Offline

Napisano 20.02.2012 18:24

to są takie questy, których nie trzeba brać

Powiesz mi jak dodać takie questy ? Na PW ? czy nawet tutaj Bardzo pilne ;)

#7 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 20.02.2012 18:33

Sa opisane natywy i forwardy w 1 poscie, w nastepnej wersji bd latwiej wszystko robic, proszę o cierpliwosc ;]
  • +
  • -
  • 0

#8 Kamil17

    Ogar :)

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:449
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Płońsk
Offline

Napisano 20.02.2012 18:35

Sa opisane natywy i forwardy w 1 poscie, w nastepnej wersji bd latwiej wszystko robic, proszę o cierpliwosc ;]

Ostatnie pytanie . Podjął byś się napisania tych questów do DiabloModa ?

#9 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 20.02.2012 18:58

Sa opisane natywy i forwardy w 1 poscie, w nastepnej wersji bd latwiej wszystko robic, proszę o cierpliwosc ;]

Ostatnie pytanie . Podjął byś się napisania tych questów do DiabloModa ?

Podejme sie kiedy skoncze te ostatecznie ;]
  • +
  • -
  • 1

#10 mastah1771

    Początkujący

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:11
  • Lokalizacja:Kalisz
Offline

Napisano 20.02.2012 20:06

fajnie jakbyś zrobił statystki WWW .
  • +
  • -
  • 0

#11 Arex

    ERROR

  • Zbanowany

Reputacja: 5
Nowy

  • Postów:310
  • Imię:Arex
  • Lokalizacja:Bobowa
Offline

Napisano 20.02.2012 20:27

Tak ale Fili nie ogarnia sql

#12 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 22.02.2012 10:24

Update 1.1:
  • Nowy argument "Nagroda" w natywie register_quest
  • Duża zmiana w menu
  • Nowy element w zapisie "Czy gracz przyjął zadanie ?"

  • +
  • -
  • 0

#13 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 23.02.2012 13:03

Tak ale Fili nie ogarnia sql

Zapis SQL dodany :]
  • +
  • -
  • 0

#14 phoeniX

    Pomocny

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:56
  • GG:
  • Imię:Przemysław
  • Lokalizacja:Kobylany
Offline

Napisano 23.02.2012 20:36

Fajny, fajny.. :)
Dodaj ss'y jak możesz. ;)
  • +
  • -
  • 0

#15 Arex

    ERROR

  • Zbanowany

Reputacja: 5
Nowy

  • Postów:310
  • Imię:Arex
  • Lokalizacja:Bobowa
Offline

Napisano 23.02.2012 22:08

23 luty 2012r : arex92 zmotywował mnie swoim komentarzem i od dnia dzisiejszego mamy do wyboru zapis sql lub nvault, webstats postaram się zrobić do końca tygodnia.


hehehe bardzo dziekuje

#16 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 24.02.2012 13:37

1. Chcecie poradnik i przykłady tworzenia questow ?
2. Chcecie support z cod modem, czyli questy od lvlu lub dla konkretnej klasy ?
  • +
  • -
  • 1

#17 Anonimowy*BB*

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:72
  • GG:
  • Imię:Mateusz
  • Lokalizacja:PdoN'
Offline

Napisano 24.02.2012 17:46

1. Chcecie poradnik i przykłady tworzenia questow ?
2.Nie zbytnio.
Wiesz co fajnie by było że za zadania jest exp pod pasowany do skill moda do BB.
  • +
  • -
  • 0

#18 Kamil17

    Ogar :)

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:449
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Płońsk
Offline

Napisano 24.02.2012 17:52

1. Chcecie poradnik i przykłady tworzenia questow ?
2. Chcecie support z cod modem, czyli questy od lvlu lub dla konkretnej klasy ?

Czy byś zrobił te questy do Diablomoda co podałem wyżej ?? Proszę :D

#19 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

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

Napisano 24.02.2012 17:56

1. Chcecie poradnik i przykłady tworzenia questow ?
2.Nie zbytnio.
Wiesz co fajnie by było że za zadania jest exp pod pasowany do skill moda do BB.

Możesz posłużyć się forwardem quest_give_reward, aby dać graczowi nagrodę, np. exp do skill moda na bb

1. Chcecie poradnik i przykłady tworzenia questow ?
2. Chcecie support z cod modem, czyli questy od lvlu lub dla konkretnej klasy ?

Czy byś zrobił te questy do Diablomoda co podałem wyżej ?? Proszę :D

Dorób do diablo natyw, który powiększa exp i poźniej w forwardzie quest_give_reward używaj natywu, aby dać nagrodę.
  • +
  • -
  • 0

#20 Kamil17

    Ogar :)

  • Zbanowany

Reputacja: 67
Pomocny

  • Postów:449
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Płońsk
Offline

Napisano 24.02.2012 21:33

Dorób do diablo natyw, który powiększa exp i poźniej w forwardzie quest_give_reward używaj natywu, aby dać nagrodę.


@ Ja się nie znam na robieniu Questów i dlatego proszę znawce :) Czyli ciebie filip Help Please Me :)





Również z jednym lub większą ilością słów kluczowych: misja, misje, zadania, zadanie, questy, quest, quests, nvault, colorchat, tworzenie

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

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