Questy do Nowego Cod'a
Muzzi
11.09.2011
Questy do Nowego Cod'a
by Muzzi Ver. 1.0
Jest to przerobiony plugin DarkGL'a questy do diablo, przerobiłem to aby działało pod Cod'a Nowego. Jeżeli widzicie jakieś błędy pisać w temacie.

Aby dodać questy wystarczy tak jak tutaj poniżej.
Tutaj dodajemy Przedziały levelowe.
Tutaj wpisujemy opis questa.
Pierwszy przykład
No i pozostały informacje co i jak.
Co zabijamy i jaka nagroda.
Dodatkowo w kodzie, można zmienić prefix przed menu, [NazwaSieci.pl].
Mam nadzieje, iż nie namieszałem tak strasznie
Plugin wystarczy wgrać na serwer i dodać plugin pod pluginem CODMod.

Wymagane dodatkowe Moduły:
#include <ColorChat>
#include <codmod>
Jeżeli zobaczycie jakieś błędy pisać, postaram się naprawić to co nie działa.
Plugin został napisany od razu po udostępnieniu questów darkgl'a lecz niestety nie był publikowany.
Mam nadzieję iż nie ma aż tak strasznie rażących błędów
Użytkownik Muzzi edytował ten post 11.09.2011 20:18
by Muzzi Ver. 1.0
Jest to przerobiony plugin DarkGL'a questy do diablo, przerobiłem to aby działało pod Cod'a Nowego. Jeżeli widzicie jakieś błędy pisać w temacie.

Aby dodać questy wystarczy tak jak tutaj poniżej.
Tutaj dodajemy Przedziały levelowe.
new const przedzial[][] =
{
{1,50},
{51,100},
{101,200},
{201,401}
}
Tutaj wpisujemy opis questa.
Pierwszy przykład
{ przedział levelowy, ile musisz zabić, "jaką klase musisz zabić", "ile dostaniesz expa" }
new const SpisQuest[][] =
{
{1,2,"Komandos","300"},
{2,5,"Snajper","400"},
{3,8,"Obronca","650"}
}
No i pozostały informacje co i jak.
Co zabijamy i jaka nagroda.
new const QuestyInfo[][] =
{
"Zabij 2 Komandosow",
"Zabij 5 Snajperow",
"Zabij 8 Obroncow"
}
new const QuestyInfoExp[][] =
{
"(Nagroda 300 doswiadczenia)",
"(Nagroda 400 doswiadczenia)",
"(Nagroda 650 doswiadczenia)"
}
Dodatkowo w kodzie, można zmienić prefix przed menu, [NazwaSieci.pl].
Mam nadzieje, iż nie namieszałem tak strasznie
Plugin wystarczy wgrać na serwer i dodać plugin pod pluginem CODMod.

Wymagane dodatkowe Moduły:
#include <ColorChat>
#include <codmod>
Jeżeli zobaczycie jakieś błędy pisać, postaram się naprawić to co nie działa.
Plugin został napisany od razu po udostępnieniu questów darkgl'a lecz niestety nie był publikowany.
Mam nadzieję iż nie ma aż tak strasznie rażących błędów
Załączone pliki
Użytkownik Muzzi edytował ten post 11.09.2011 20:18
Muzzi
11.09.2011
[size=4]Jest to przerobiony plugin DarkGL'a questy do diablo, przerobiłem to aby działało pod Cod'a Nowego[/size] Plugin został napisany od razu po udostępnieniu questów darkgl'a lecz niestety nie był publikowany.
To nie jest to samo co dałeś.
Jest to przeróbka kodu Dark'a
radim
12.09.2011
Dark potrafię czytać 
Muzzi, ale po co drugie questy, skoro już są do coda
Muzzi, ale po co drugie questy, skoro już są do coda
Na 5tyk
12.09.2011
Questy darka są lepsze bo:
- zapisują się,
- jest przedział poziomów,
- łatwe dodanie dodatkowych questów.
To chyba na tyle.
- zapisują się,
- jest przedział poziomów,
- łatwe dodanie dodatkowych questów.
To chyba na tyle.
Muzzi
12.09.2011
Questy darka są lepsze bo:
- zapisują się,
- jest przedział poziomów,
- łatwe dodanie dodatkowych questów.
To chyba na tyle.
Chłopczę, questy Darka są do diablo moda, ja je przerobiłem tak aby działały do Cod moda, plus dodałem takie menu od siebie
Na 5tyk
12.09.2011
Właśnie wiem. Ale on się pytał po co 2 Questy no to mu napisałem dlaczego są lepsze
A może sma?
17.09.2011
Przepraszam, że zapytam... To działa w ogóle
?
Po wybraniu jakiegoś questu menu już się nie otwiera...
Po zabiciu klasy np. Snajper nalicza poprawnie. Jednak warunek sprawdzający czy zadanie zostało wypełnione również nie działa... Po prostu licznik leci dalej po zabiciu wymaganej liczby osób...
Po wybraniu jakiegoś questu menu już się nie otwiera...
Po zabiciu klasy np. Snajper nalicza poprawnie. Jednak warunek sprawdzający czy zadanie zostało wypełnione również nie działa... Po prostu licznik leci dalej po zabiciu wymaganej liczby osób...
radim
17.09.2011
A może sma, menu nie wyświetla się dopóki nie wypełnisz obecnej misji lub nie napiszesz /resetquesty - tak na diablo było.
Muzzi
18.09.2011
Yyy. Musi to działać, testowane na serwerze zanim to wypuściłem w sieć. Menu powinno się otwierać za każdym razem, gdy wpiszecie komende.
radim
18.09.2011
Powinno, ale nie musi.. W diablo jest tak, że menu się nie otwiera dopóki nie wykonasz obecnego questaMenu powinno się otwierać za każdym razem, gdy wpiszecie komende.
Kaleka
13.11.2011
Jak zrobić misję np
Zabij 10 snajperów lub komandosów?
Żeby za zabicie snajpera lub komandosa zaliczało jeden punkt?
Zabij 10 snajperów lub komandosów?
Żeby za zabicie snajpera lub komandosa zaliczało jeden punkt?
Denox
23.12.2011
[b]
Przepraszam za bład i spam to jest moj co_questy.sma mam tez zalacznik a klasy na serwie to
Majestic
Pilicjant
Komandos
NightZoomen (Klasa Vip)
Rambo (Klasa Premium)
[tylko te do questow
[/b]Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
cod_questy.sma(17) : error 001: expected token: "}", but found "{"
cod_questy.sma(26) : error 001: expected token: "}", but found "{"
cod_questy.sma(35) : error 001: expected token: "}", but found "-string-"
cod_questy.sma(44) : error 001: expected token: "}", but found "-string-" error przy kompilacji a to moj sma (poczaek bo tyle edytowalem)#include <amxmodx>
#include <codmod>
#include <nvault>
#include <colorchat>
#define PLUGIN "[COD] Questy"
#define VERSION "1.0"
#define AUTHOR "DarkGL edited by Muzzi"
new const prefix[] = "[Questy]";
new const przedzial[][] =
{
{1,20},
{21,40},
{41,100}
{101,150}
{151,200}
}
new const SpisQuest[][] =
{
{20,13,"Komandos","3000"},
{70,20,"Majestick","40000"},
{100,33,"Policjant","650000"}
{150,50,"Night Zoomer(Klasa Vip)","900000"
{180,30,"Rambo(Klasa Premium)","1000000"
}
new const QuestyInfo[][] =
{
"Zabij 13 Komandosow",
"Zabij 20 Majestikow",
"Zabij 33 Policjantow"
"Zabij 50 Night Zoomer'ow (Klasa Vip)"
"Zabij 30 Rambo (Klasa Premium)"
}
new const QuestyInfoExp[][] =
{
"(Nagroda 3000 doswiadczenia)",
"(Nagroda 40000 doswiadczenia)",
"(Nagroda 650000 doswiadczenia)"
"(Nagroda 900000 doswiadczenia)"
"(Nagroda 1000000 doswiadczenia)"
}
new prze_wybrany[33],
vault_questy,Przepraszam za bład i spam to jest moj co_questy.sma mam tez zalacznik a klasy na serwie to
Majestic
Pilicjant
Komandos
NightZoomen (Klasa Vip)
Rambo (Klasa Premium)
[tylko te do questow
#include <amxmodx>
#include <codmod>
#include <nvault>
#include <colorchat>
#define PLUGIN "[COD] Questy"
#define VERSION "1.0"
#define AUTHOR "DarkGL edited by Muzzi"
new const prefix[] = "[Questy]";
new const przedzial[][] =
{
{1,20},
{21,40},
{41,100}
{101,150}
{151,200}
}
new const SpisQuest[][] =
{
{20,13,"Komandos","3000"},
{70,20,"Majestick","40000"},
{100,33,"Policjant","650000"}
{150,50,"Night Zoomen (Klasa Vip)","900000"
{180,30,"Rambo (Klasa Premium)","1000000"
}
new const QuestyInfo[][] =
{
"Zabij 13 Komandosow",
"Zabij 20 Majestikow",
"Zabij 33 Policjantow"
"Zabij 50 Night Zoomen'ow (Klasa Vip)"
"Zabij 30 Rambo (Klasa Premium)"
}
new const QuestyInfoExp[][] =
{
"(Nagroda 3000 doswiadczenia)",
"(Nagroda 40000 doswiadczenia)",
"(Nagroda 650000 doswiadczenia)"
"(Nagroda 900000 doswiadczenia)"
"(Nagroda 1000000 doswiadczenia)"
}
new prze_wybrany[33],
vault_questy,
vault_questy2,
quest_gracza[33],
ile_juz[33],
klasa[33][64];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "DeathMsg", "a");
register_clcmd("say /quest","cmdMenuQuest");
vault_questy = nvault_open("Questy");
vault_questy2 = nvault_open("Questy2");
}
public cod_class_changed(id, klasa)
{
quest_gracza[id] = wczytaj_aktualny_quest(id)
}
public client_disconnect(id) zapisz_questa(id,quest_gracza[id],"1")
public plugin_end()
{
nvault_close(vault_questy);
nvault_close(vault_questy2);
}
public cmdMenuQuest(id){
if(quest_gracza[id] == -1 || quest_gracza[id] == -2)
{
new menu = menu_create("^n^n\y[NazwaSieci.pl] \wMenu Questow^n\dby \rMuzzi\d^n^n\yAktualny Quest: \wBrak","handle_cmdMenuQuest");
menu_additem(menu,"Wybierz Quest","0");
menu_additem(menu,"Resuj Questy \y[\rWszystkie!\y]","3");
menu_display(id,menu);
}
else
{
new formats[256];
format(formats,charsmax(formats),"^n^n^n\y[NazwaSieci.pl] \wMenu Questow^n\dby \rMuzzi^n^n\yAktualny Quest: \w%s^n\rStatus:\w %d/%d^n\y%s",QuestyInfo[quest_gracza[id]],ile_juz[id],SpisQuest[quest_gracza[id]][1],QuestyInfoExp[id]);
new menu = menu_create(formats,"handle_cmdMenuQuest");
menu_additem(menu,"\dWybierz Quest","2");
menu_additem(menu,"\wAnuluj Quest","1");
menu_display(id,menu);
}
}
public handle_cmdMenuQuest(id,menu,item){
if(item==MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 0: cmdQuest(id)
case 1:{
zapisz_questa(id,quest_gracza[id],"0")
quest_gracza[id] = -1;
zapisz_aktualny_quest(id)
}
case 2:{
ColorChat(id,GREY,"%s Niestety, posiadasz aktualnie Questa",prefix);
return PLUGIN_HANDLED;
}
case 3: resetquesty(id)
}
return PLUGIN_HANDLED;
}
public cmdQuest(id){
if(quest_gracza[id] == -1 || quest_gracza[id] == -2)
{
new formats[512];
format(formats,charsmax(formats),"^n^n\y[NazwaSieci.pl] \wWybierz Quest\d");
new menu = menu_create(formats,"handle_cmdQuest");
for(new i=0; i<sizeof przedzial; i++)
{
format(formats,charsmax(formats),"Questy od \r%d \wdo \r%d",przedzial[i][0],przedzial[i][1]);
menu_additem(menu, formats);
}
menu_display(id,menu);
}
else
{
ColorChat(id,GREY,"%s Wykonaj najpierw poprzednie zadanie",prefix)
}
return PLUGIN_CONTINUE;
}
public handle_cmdQuest(id,menu,item){
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(cod_get_user_level(id) < przedzial[item][0])
{
ColorChat(id,GREY,"%s Masz za maly level!",prefix);
cmdQuest(id)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new formats[512]
formatex(formats,charsmax(formats),"^n^n\y[NazwaSieci.pl] \wWybierz Quest^n\dZadania od %d do %d poziomu",przedzial[item][0],przedzial[item][1]);
new menu = menu_create(formats,"handle_handle_cmdQuest")
for(new i=0; i<sizeof SpisQuest; i++)
{
if(SpisQuest[i][0] == item+1){
formatex(formats,charsmax(formats),"\w%s \r%s",QuestyInfo[i],QuestyInfoExp[i]);
menu_additem(menu,formats);
}
}
prze_wybrany[id] = item+1;
menu_display(id,menu);
return PLUGIN_CONTINUE;
}
public handle_handle_cmdQuest(id,menu,item){
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new ile2 = 0;
for(new i = 0;i<sizeof(SpisQuest);i++){
if(SpisQuest[i][0] != prze_wybrany[id]){
continue;
}
if(ile2 == item){
item = i;
break;
}
ile2++;
}
if(wczytaj_questa(id,item)){
ColorChat(id,GREY,"%s Wykonales juz to zadanie!",prefix);
cmdQuest(id)
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
quest_gracza[id] = item;
ile_juz[id] = 0
zapisz_aktualny_quest(id)
ColorChat(id,GREY,"%s Wybrales quest: %s %s powodzenia !",prefix,QuestyInfo[item],QuestyInfoExp[item]);
quest_gracza[id] = wczytaj_aktualny_quest(id);
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public DeathMsg(){
new attacker = read_data(1);
new victim = read_data(2);
if(quest_gracza[attacker] != -1)
{
if(attacker == victim) return PLUGIN_HANDLED;
cod_get_class_name(cod_get_user_class(victim), klasa[victim], charsmax(klasa));
if(klasa[victim][0] == SpisQuest[quest_gracza[attacker]][2]){
ile_juz[attacker]++;
zapisz_aktualny_quest(attacker)
}
if(ile_juz[attacker] == SpisQuest[quest_gracza[attacker]][1]){
ColorChat(attacker,GREY,"%s Wykonales zadanie %s gratulacje otrzymujesz %s expa!",prefix,QuestyInfo[quest_gracza[attacker]],QuestyInfoExp[attacker])
zapisz_questa(attacker,quest_gracza[attacker],"1")
cod_set_user_xp(attacker,cod_get_user_xp(attacker) + SpisQuest[quest_gracza[attacker]][3]);
quest_gracza[attacker] = -1;
zapisz_aktualny_quest(attacker)
}
else
{
ColorChat(attacker,GREY,"%s Zabiles %i/%i %s",prefix,ile_juz[attacker],SpisQuest[quest_gracza[attacker]][1],SpisQuest[quest_gracza[attacker]][2])
}
}
return PLUGIN_CONTINUE;
}
public zapisz_questa(id,quest,value[])
{
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[64];
format(key,63,"questy-%i-%s-%i",klasa[id],name,quest);
nvault_set(vault_questy,key,value);
}
public zapisz_aktualny_quest(id){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[256];
format(key,255,"questy-%d-%s",klasa[id],name);
new data[32]
formatex(data,charsmax(data),"#%d#%d",quest_gracza[id]+1,ile_juz[id]);
nvault_set(vault_questy2,key,data);
}
public wczytaj_aktualny_quest(id){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[256];
format(key,255,"questy-%d-%s",klasa[id],name);
new data[32];
nvault_get(vault_questy2,key,data,31);
replace_all(data,31,"#"," ");
new questt[32],ile[32]
parse(data,questt,31,ile,31)
ile_juz[id] = str_to_num(ile)
return str_to_num(questt)-1
}
public wczytaj_questa(id,quest){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[64];
format(key,63,"questy-%i-%s-%i",klasa[id],name,quest);
new data[64];
nvault_get(vault_questy,key,data,63);
return str_to_num(data);
}
public resetquesty(id)
{
new menu = menu_create("Czy na pewno chcesz usunac Wszystkie Zapisane Questy?","handle_resetquesty");
menu_additem(menu,"Tak, Chce wykasowac wszystkie Questy!","0");
menu_additem(menu,"Nie, Nie chce nic kasowac!","1");
menu_display(id,menu);
}
public handle_resetquesty(id,menu,item){
if(item==MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 0:{
for(new i=0;i<sizeof SpisQuest;i++)
{
zapisz_questa(id,i,"0")
}
quest_gracza[id] = -1;
zapisz_aktualny_quest(id)
}
case 1: ColorChat(id,GREY,"%s Nie baw sie <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.png' class='bbc_emoticon' alt=':D' />",prefix);
}
return PLUGIN_CONTINUE;
}
Haliax
24.12.2011
Przepraszam ze zapytam, to dziala czy nie?
Ponieważ niewiem czy opłaca się wgrywać, a widzę że niektórzy mają z tym problemy.
Ponieważ niewiem czy opłaca się wgrywać, a widzę że niektórzy mają z tym problemy.






