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
 

Begrezen - zdjęcie

Begrezen

Rejestracja: 02.06.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 05.11.2011 20:59
-----

#293567 problem z baza unixstorm

Napisane przez M@nkovsky w 07.09.2011 15:47

Witam przeczuciem się z bazy local(hostvision) na unixstorm.i nie wiem co robić. Na hostvision gdy było więcej jak 12osób na serwerze , klasa była od 4-5rundy.
Na unixstorm klasa jest od 7-8
Co się wogóle z tym dzieje

Mam 15klas do wyboru
i 6statystyk
Czy to jest az tak duzo?


#249996 Diablomod by Onyke

Napisane przez Onyke w 16.05.2011 16:45

Diablomod 5.9l by Onyke




Dołączona grafika
Plik diablo_onyke.amxx do addons/amxmodx/plugins
Plik diablo_onyke.sma do addons/amxmodx/scripting
Archiwum "diablo_onyke.rar" wypakować do cstrike.
Wejdz do addons/amxmodx/configs/plugins.ini i na samym końcu dopisz: diablo_onyke.amxx
Dołączona grafika
#include <amxmodx>
#include <amxmisc>

#include <engine>
#include <fakemeta>
#include <cstrike>

#include <fun>
#include <fakemeta_util>
#include <sqlx>
#include <csx>
#include <hamsandwich>
#include <colorchat>
#include <xs>
#include <nvault>
Dołączona grafika
diablo_sql_host "Adres bazy MySQL"
diablo_sql_user "Użytkownik bazy"
diablo_sql_pass "Hasło użytkownika"
diablo_sql_database "Nazwa bazy danych"
diablo_sql_table "diablomod"
diablo_sql_save "Zapis bazy 0-2"
//0 - Nick
//1 - IP
//2 - STEAMID
diablo_xpbonus 20 //Ilość expa za zabicie (standardowo ustawione na 7)
diablo_xpbonus2 40 //Ilość expa za wykonania celu mapy (standardowo ustawione na 75)
diablo_xpbonus3 20 //Okresla ile dosw. dostajesz za wygranie rundy przez twoj team
diablo_durability 10 //Okresla ilosc tracenia jakosci za każdym razem,kiedy uderzy cie przeciwnik
diablo_spawnchance 7 //1/x - szansa na zrespienia gracza
SaveXp 1 //1/0 zapisywanie doświadczenia
diablo_classes abcdefghijkl //kt&#243;re klasy maja być dostępne
diablo_avg 0 //zaczynanie od sredniej serwera (liczonego od lvl 1)
diablo_dmg_exp 0 //za ile zabranego hp wrogowi dostaje sie 1 exp (domyslnie 20, 0 - off)
//Cvarow podanych niżej nie zmieniaj
sv_hook "1"
sv_hookthrowspeed "2000"
sv_hookspeed "600"
sv_hookwidth "32"
sv_hooksound "1"
sv_hookcolor "0"
sv_hookplayers "1"
sv_hookinterrupt "0"
sv_hookadminonly "0"
sv_hooksky "1"
sv_hookopendoors "1"
sv_hookbuttons "1"
sv_hookpickweapons "1"
sv_hookhostfollow "1"
sv_hookinstant "0"
sv_hooknoise "0"
sv_hookmax "0"
sv_hookdelay "0.0"
//Koniec cvar&#243;w kt&#243;rych masz nie zmieniać
Dołączona grafika
Max lvl: 100
Max pkt na statystyke: 50
Tabela Expa: Podstawowa
Frakcje: Bohaterowie, Potwory, Zwierzęta, Premium
Ilość klas: 28 Dołączona grafika
Ilość itemów: 120+
Usunięte: większość (jak nie wszystkie) bugi podstawowego diablo.
Doświadczenie za wygraną runde.
Questy ( Dzięki DarkGL Dołączona grafika )
System many: z bardzo rozbudowanym sklepem za nią.
Nowe moce typu: lina pająka, rakiety, lustrzane pancerze itp
Exp leci od: 4 graczy online
Poradnik dostępny: Tutaj [KLIK]
Chyba tyle, a jak o czymś zapomniałem to będzie to niespodzianka Dołączona grafika
Dołączona grafika
/drop, /d - wyrzuca aktualnie posiadany item.
/item, /i, /przedmiot, /p - pokazuje informacje na temat aktualnie posiadanego itemu.
/klasa, /k, klasa - wyświetla menu z wyborem klas / Pamiętaj wchodząc pierwszy raz na serwa klasa będzie dostępna po zmianie mapy !!
/speed, /s - pokazuje aktualną prędkość
/gracze, /g - pokazuje listę graczy online z ich klasą,itemem itp
/czary, /cz - pokazuje obecne statystyki (siła,inteligencja,zwinność,zręczność)
/rune, /r - wyświetla sklep za kasę
/mana, /m - wyświetla sklep za mane
/exp - wyświetla obecną ilość expa i ile brakuje do następnego poziomu
/reset - resetuje statystyki (siła,inteligencja,zwinność,zręczność)
/questy, /quest - wyświetla menu z misjami(questami)
Dołączona grafika
Sorry za taką jakość ale innego ssa nie miałem, a na tym ssie był adres mojego forum.
Diablo ciut się różni od tego na SS
Dołączona grafika
Zauważone błędy:
Kilka itemów nie ma opisu i jak dobrze pamiętam kilka nie działa.
WAŻNE






Żeby usunąć "reklamy" wpisz w .sma słowo "amxx.pl" i zamień na swój adres forum po czym ponownie przekompiluj.
Wyskakuje Ci błąd - "undefined symbol "YELLOW"" ? Zobacz ten temat.
Żeby zmienić ilość graczy od ilu leci exp znajdź "if(zablokuj < 4 && amount < 200)" i "4" zamień na tyle od ilu ma lecieć (masło maślane)
Diablomod może nie jest jakoś super optymalnie przerobiony ale to dlatego że jest to stara wersja mojego diablo i wtedy jeszcze byłem newbie.(Zresztą mój serwer nie miał problemów z utrzymaniem go)
Stworzone na bazie Diablo Mod 5.9l przy użyciu dost. poradników i własnych doświadczeniach.
Zakaz kopiowania bez zgody autora lub administracji forum.





Dołączona grafika
Modele:
Załączony plik  diablo_onyke.rar   1,27 MB  5828 Ilość pobrań

.SMA:
Załączony plik  diablo_onyke.sma   402,1 KB  4300 Ilość pobrań
  diablo_onyke.amxx - aby pobrać plik .amxx kliknij "Pobierz Plugin"

Poradnik WWW by Suis
Załączony plik  Poradnik WWW by Suis.rar   8,29 KB  2601 Ilość pobrań

Statystyki WWW [KLIK]
  • +
  • -
  • 68


#250783 Dodawanie questów

Napisane przez DarkGL w 18.05.2011 22:10

Jako że Onyke wydał swojego diablo mod'a w którym jest system questów wykonany prze zemnie na jego zlecenie chyba nie obrazi się jak dam tutorial jak dodać go do swojego diablo moda
zresztą i tak questy były dostępne na necie : P nawet stały się dość popularne ^^

1.Powyżej plugin_init dodajemy
//questy
//Autor DarkGL : )
new quest_gracza[33];
new ile_juz[33];

//przedzial , ile ,kogo , nagroda expa, vip 1 tak 0 nie
new questy[][]={
	{1,2,Ninja,500,0},
	{1,3,Mag,1200,1},
	{1,6,Zabojca,2000,0},
	{2,6,Hunter,5000,0},
	{2,15,Barbarzynca,15000,1},
	{2,20,Paladyn,20000,1},
	{3,65,Barbarzynca,150000,1},
	{3,120,Paladyn,200000,1}
}

new vault_questy;
new vault_questy2;

//od , do , hp
new prze[][]={
	{1,50,20},
	{51,80,40},
	{81,140,60}
}

new prze_wybrany[33]

new questy_info[][]={
	"Zabij 2 Ninje (Nagroda 500 doswiadczenia)",
	"Zabij 3 Magow (Nagroda 1200 doswiadczenia)",
	"Zabij 6 Zabojcow (Nagroda 2000 doswiadczenia)",
	"Zabij 6 Lowcow (Nagroda 5000 doswiadczenia)",
	"Zabij 15 Barbarzyncow (Nagroda 15000 doswiadczenia)",
	"Zabij 20 Paladynow (Nagroda 20000 doswiadczenia)",
	"Zabij 65 Barbarzyncow (Nagroda 150000 doswiadczenia)",
	"Zabij 120 Paladynow (Nagroda 200000 doswiadczenia)"
}

new questy_zabil[][]={
	"Ninjow",
	"Magow",
	"Zabojcow",
	"Lowcow",
	"Barbarzyncow",
	"Paladynow",
	"Barbarzyncow",
	"Paladynow"
}
2. w plugin_init dodajemy
vault_questy = nvault_open("Questy");
	vault_questy2 = nvault_open("Questy2");
	
	register_clcmd("say /questy","menu_questow")
	register_clcmd("say /quest","menu_questow")

3.w dowolnym miejscu w kodzie dodajemy
public menu_questow(id){
	if(quest_gracza[id] == -1 || quest_gracza[id] == -2){
		
		new menu = menu_create("Menu Questow","menu_questow_handle")
		new formats[128]
		for(new i = 0;i<sizeof prze;i++){
			formatex(formats,127,"Questy od %d do %d poziomu",prze[i][0],prze[i][1]);
			menu_additem(menu,formats)
		}
		menu_display(id,menu,0)
	}
	else
	{
		client_print(id,print_chat,"Wykonaj najpierw poprzednie zadanie")
	}
}

public menu_questow_handle(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	if(player_lvl[id] < prze[item][0]){
		client_print(id,print_chat,"Masz za maly level!");
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	new formats[128]
	formatex(formats,127,"Questy od %d do %d poziomu",prze[item][0],prze[item][1]);
	new menu2 = menu_create(formats,"menu_questow_handle2")
	for(new i = 0;i<sizeof(questy);i++){
		if(questy[i][0] == item+1){
			menu_additem(menu2,questy_info[i]);
		}
	}
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
	prze_wybrany[id] = item+1;
	menu_display(id,menu2)
	return PLUGIN_CONTINUE;
}

public zapisz_questa(id,quest){
	new name[64];
	get_user_name(id,name,63)
	strtolower(name)
	new key[64];
	format(key,63,"questy-%i-%s-%i",player_class[id],name,quest);
	nvault_set(vault_questy,key,"1");
}

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",player_class[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",player_class[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",player_class[id],name,quest);
	new data[64];
	nvault_get(vault_questy,key,data,63);
	return str_to_num(data);
}

public menu_questow_handle2(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	new ile2 = 0;
	for(new i = 0;i<sizeof(questy);i++){
		if(questy[i][0] != prze_wybrany[id]){
			continue;
		}
		if(ile2 == item){
			item = i;
			break;
		}
		ile2++;
	}
	if(questy[item][4] && !(get_user_flags(id) & ADMIN_LEVEL_H)){
		client_print(id,print_chat,"Ten quest jest tylko dla vipow! Aby kupic vipa wejdz na forum amxx.pl");
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	if(wczytaj_questa(id,item)){
		client_print(id,print_chat,"Wykonales juz to zadanie!");
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	quest_gracza[id] = item;
	ile_juz[id] = 0
	zapisz_aktualny_quest(id)
	client_print(id,print_chat,"Wybrales zadanie: %s powodzenia !",questy_info[item]);
	quest_gracza[id] = wczytaj_aktualny_quest(id);
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

4.w funkcji DeathMsg
w warunku
if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
	{
dodajemy
if(quest_gracza[kid] != -1){
			if(player_class[vid] == questy[quest_gracza[kid]][2]){
				ile_juz[kid]++;
				zapisz_aktualny_quest(kid)
			}
			if(ile_juz[kid] == questy[quest_gracza[kid]][1]){
				client_print(kid,print_chat,"Wykonales zadanie %s gratulacje otrzymujesz %i expa!",questy_info[quest_gracza[kid]],questy[quest_gracza[kid]][3])
				zapisz_questa(kid,quest_gracza[kid])
				Give_Xp(kid,questy[quest_gracza[kid]][3]);
				quest_gracza[kid] = -1;
				zapisz_aktualny_quest(kid)
			}
			else
			{
				client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]])
                        }
}
tak to ma wyglądać
if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
	{
		show_deadmessage(kid,vid,headshot,weaponname)
		create_itm(vid,0,"losowy item")
		award_kill(kid,vid)
		add_respawn_bonus(vid)
		add_bonus_explode(vid)
		add_barbarian_bonus(kid)
		//mana_gracza[kid]+=1
		//mana_gracza[headshot]+=2
		if (player_class[kid] == Barbarzynca)
		refill_ammo(kid)
		if (player_class[kid] == Griswold)
		refill_ammo(kid)
		if (player_class[kid] == Kowal)
		refill_ammo(kid)
		if (player_class[kid] == Demonolog)
		refill_ammo(kid)
		set_renderchange(kid)
		savexpcom(vid)
		if(quest_gracza[kid] != -1){
			if(player_class[vid] == questy[quest_gracza[kid]][2]){
				ile_juz[kid]++;
				zapisz_aktualny_quest(kid)
			}
			if(ile_juz[kid] == questy[quest_gracza[kid]][1]){
				client_print(kid,print_chat,"Wykonales zadanie %s gratulacje otrzymujesz %i expa!",questy_info[quest_gracza[kid]],questy[quest_gracza[kid]][3])
				zapisz_questa(kid,quest_gracza[kid])
				Give_Xp(kid,questy[quest_gracza[kid]][3]);
				quest_gracza[kid] = -1;
				zapisz_aktualny_quest(kid)
			}
			else
			{
				client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]])
			}
		}
	}

5.
quest_gracza[id] = wczytaj_aktualny_quest(id);
musimy to dodać po całym switch w funkcji handle menu wyboru klas
dużo diablo modów dużo menów dlatego tylko przyklad
public PokazMeni(id, key)
{ 
/* Menu:
* Wybierz klase:
* 1:Czarodziejka
* 2:Druid
* 3:Paladyn
* 4:Zabojczyni
* 5:Nekromanta
* 6:Barbarzynca
* 7:Ninja
* 8:Amazonka
* 0:Wstecz
*/
new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_shake[id]=0
c_damage[id]=0
c_jump[id]=0
c_mine[id]=0
c_respawn[id]=0
c_vampire[id]=0
zmiana_skinu[id]=0
switch(key) 
{ 
    case 0: 
    {    
        player_class[id] = Mag
	c_shake[id]=20
        LoadXP(id, player_class[id])        
    }
    case 1: 
    {    
        player_class[id] = Mnich
	c_damage[id]=3
	zmiana_skinu[id]=1
	changeskin(id,0)
        LoadXP(id, player_class[id])
    }
    case 2: 
    {    
        player_class[id] =  Paladyn
        LoadXP(id, player_class[id])
    }
    case 3: 
    {    
        player_class[id] = Zabojca
	c_jump[id]=1
	c_mine[id]=2
        LoadXP(id, player_class[id])
    }
    case 4: 
    {            
        player_class[id] = Nekromanta
        g_haskit[id] = 1
	c_respawn[id]=4
	c_vampire[id]=random_num(1,3)
        LoadXP(id, player_class[id])
    }
    case 5: 
    {    
        player_class[id] = Barbarzynca      
        LoadXP(id, player_class[id])
    }
    case 6: 
    {    
        player_class[id] = Ninja
        LoadXP(id, player_class[id])
    }
    case 7: 
    {    
        player_class[id] = Hunter
        g_GrenadeTrap[id] = 1    
        LoadXP(id, player_class[id])
    }
    case 9: 
    { 
        select_class(id,lx)
    }
}
CurWeapon(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
give_knife(id)

return PLUGIN_HANDLED
}

Wiem jestem cienki w pisaniu poradników : D
macie tutaj
Diablomod by 0nYk3 - AMXX.pl: Support AMX Mod X
już dodane questy możecie się wzorować na tym
  • +
  • -
  • 24