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.
  | 
             
			
				
					
						
					
					#21
					
					
				
				
				
					
				
			
				
			
			
			Napisano 22.06.2011 18:07
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
a.sma(964) : error 010: invalid function or declaration
a.sma(966) : error 010: invalid function or declaration
a.sma(971) : error 021: symbol already defined: "UstawNowaKlase"
a.sma(972) : error 021: symbol already defined: "DajBronie"
a.sma(973) : error 021: symbol already defined: "ZastosujAtrybuty"
a.sma(974) : error 021: symbol already defined: "ZapiszDane"
6 Errors.
Could not locate output file a.amxx (compile failed).
			
				
					
						
					
					#22
					
					
				
				
				
					
				
			
				
			
			
			Napisano 22.06.2011 19:12
			
				
					
						
					
					#23
					
					
				
				
				
					
				
			
				
			
			
			Napisano 22.06.2011 20:06
Dodano 23 czerwiec 2011 - 10:24:
Mam pytanie czy jest mozliwe zrobienie czegos takiego ze jak nabijemy potrzebny lvl np: na komandosie to dostajemy wybor czy chcemy np: szybkiego komandosa (taka klasa) czy celnego komandosa. czy da sie cos takiego zrobic
Dodano 23 czerwiec 2011 - 16:51:
A jeszcze 1 sprawa nie wiem dlaczego klasa ktora podales nie chce mi sie skompilowac. Daje do kompilatora ta klase co podales i sie wyswietla blad Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
a.sma(23) : error 017: undefined symbol "cod_register_advance"
a.sma(54) : warning 203: symbol is never used: "bronie"
a.sma(54) : warning 203: symbol is never used: "inteligencja"
a.sma(54) : warning 203: symbol is never used: "kondycja"
a.sma(54) : warning 203: symbol is never used: "wytrzymalosc"
a.sma(54) : warning 203: symbol is never used: "zdrowie"
1 Error.
Could not locate output file a.amxx (compile failed).
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#define DMG_BULLET (1<<1) 
new bool:ma_klase[33];
new const nazwa[] = "Elitarny Snajper";
new const opis[] = "200 procent obrazen z AWP(+inteligencja), 1/1 szansy na natychmiastowe zabicie z noza(PPM)";
new const bronie = 1<<CSW_DEAGLE | 1<<CSW_AWP;
new const zdrowie = 80;
new const kondycja = 75;
new const inteligencja = 20;
new const wytrzymalosc = 50;
public plugin_init() 
{
	register_plugin(nazwa, "1.0", "QTM_Peyote");
	
	cod_register_advance(cod_get_classid("Snajper"), 60, nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
	ma_klase[id] = true;
public cod_class_disabled(id)
	ma_klase[id] = false;
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED; 
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(damagebits & DMG_BULLET)
	{
		new weapon = get_user_weapon(idattacker);
		
		if(weapon == CSW_KNIFE && damage > 20.0) 
			cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
			
		if(weapon == CSW_AWP)
			cod_inflict_damage(idattacker, this, damage*1.0, 1.0, idinflictor, damagebits);	
	}
	
	return HAM_IGNORED;
}
					
					
			
				
					
						
					
					#24
					
					
				
				
				
					
				
			
				
			
			
			Napisano 23.06.2011 18:55

Popularny
Wersja dla tych, który mają wgrane frakcje DarkGL'a
1. Instalujemy frakcje, a następnie awanse według instrukcji z pierwszego posta.
2. Zmieniamy publici WybierzKlase, WybierzKlase_Handle i WybierzKlase_Frakcje na:
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje");
for(new i=1; i <= ilosc_klas; i++)
{
if(!equal(frakcja_klas[i],"") && !is_in_previous(frakcja_klas[i],i)){
menu_additem(menu,frakcja_klas[i],frakcja_klas[i])
}
}
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public WybierzKlase_Frakcje(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50], szTmp[5], dana_klasa;
for(new i=1; i <= ilosc_klas; i++)
{
if(JestAwansem(i))
continue;
WczytajDane(id, i);
dana_klasa = i;
for(;
{
if(awansuje_do[dana_klasa] && poziom_gracza[id] >= awanse[ZnajdzAwans(dana_klasa, awansuje_do[dana_klasa])][2])
{
dana_klasa = awansuje_do[dana_klasa];
WczytajDane(id, dana_klasa);
}
else break;
}
if(equali(data,frakcja_klas[dana_klasa]))
{
formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[dana_klasa], poziom_gracza[id]);
num_to_str(dana_klasa, szTmp, charsmax(szTmp));
menu_additem(menu2, klasa, szTmp);
}
}
WczytajDane(id, klasa_gracza[id]);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu2);
client_cmd(id, "spk QTM_CodMod/select");
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
item = str_to_num(data);
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
nowa_klasa_gracza[id] = item;
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
return PLUGIN_CONTINUE;
}
3. W zależności od tego, jakim sposobem instalowaliśmy frakcje, dokonujemy różnych zmian:
- gdy instalowaliśmy I sposobem:
Zmieniamy public ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 10)
return PLUGIN_CONTINUE;
if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;
pluginy_klas[ilosc_klas] = plugin;
new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);
get_string(10, frakcja_klas[ilosc_klas], MAX_WIELKOSC_FRAKCJA);
return ilosc_klas;
}
Zmieniamy natyw w pliku codmod.inc na:
native cod_register_advance(z_klasy, od_levela, const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci, const frakcja[]);
- gdy instalowaliśmy II sposobem:
Zmieniamy public ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 9)
return PLUGIN_CONTINUE;
if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;
pluginy_klas[ilosc_klas] = plugin;
new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);
if(equali(nazwy_klas[ilosc_klas], "Elitarny Snajper"))
frakcja_klas[ilosc_klas] = "Amerykanie";
return ilosc_klas;
}
Teraz przed return ilosc_klas, wypisujemy wszystkie klasy, które są zarejestrowane poprzez natyw cod_register_advance (czyli te klasy, które są awansami) w taki sposób:
if(equali(nazwy_klas[ilosc_klas], "Nazwa klasy, do której można awansować"))
frakcja_klas[ilosc_klas] = "Nazwa frakcji";
- jeśli instalowaliśmy sposobem Cypis'a, zmieniamy funkcję ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 9)
return PLUGIN_CONTINUE;
if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;
pluginy_klas[ilosc_klas] = plugin;
new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);
for(new i=0;i<klasid;i++){
if(equali(nazwy_klas[ilosc_klas],nazwa_klasy[i])){
frakcja_klas[ilosc_klas] = nazwa_frakcji[i];
}
}
return ilosc_klas;
}
A następnie wypisujemy wszystkie klasy, do których możemy awansować, do cod_frakcje.ini, jak wszystkie inne.
4. Kompilujemy plik QTM_CodMod.sma.
Gotowce:
- I sposób:
 awanse_frakcje1.sma   42,81 KB  315 Ilość pobrań
  awanse_frakcje1.amxx
- II sposób:
 awanse_frakcje2.sma   42,88 KB  201 Ilość pobrań
  awanse_frakcje2.amxx
- sposób Cypisa:
 awanse_frakcjec.sma   44,14 KB  460 Ilość pobrań
  awanse_frakcjec.amxx
					
					Użytkownik Goliath edytował ten post 25.09.2011 19:40
			
				
					
						
					
					#25
					
					
				
				
				
					
				
			
				
			
			
			Napisano 23.06.2011 19:45
			
				
					
						
					
					#26
					
					
				
				
				
					
				
			
				
			
			
			Napisano 23.06.2011 21:53
Może pokaż błędy z kompilatora?
			
				
					
						
					
					#27
					
					
				
				
				
					
				
			
				
			
			
			Napisano 24.06.2011 08:02
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team codclass_deathknight.sma(23) : error 017: undefined symbol "cod_register_advance" codclass_deathknight.sma(54) : warning 203: symbol is never used: "bronie" codclass_deathknight.sma(54) : warning 203: symbol is never used: "inteligencja" codclass_deathknight.sma(54) : warning 203: symbol is never used: "kondycja" codclass_deathknight.sma(54) : warning 203: symbol is never used: "wytrzymalosc" codclass_deathknight.sma(54) : warning 203: symbol is never used: "zdrowie" 1 Error. Could not locate output file codclass_deathknight.amxx (compile failed).
			
				
					
						
					
					#28
					
					
				
				
				
					
				
			
				
			
			
			Napisano 24.06.2011 08:39
			
				
					
						
					
					#29
					
					
				
				
				
					
				
			
				
			
			
			Napisano 24.06.2011 14:14
			
				
					
						
					
					#30
					
					
				
				
				
					
				
			
				
			
			
			Napisano 24.06.2011 22:05
Mam nadzieje ze zrozumieliscie.
			
				
					
						
					
					#31
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 10:55
			
				
					
						
					
					#32
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 16:08
			
				
					
						
					
					#33
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 18:13
			
				
					
						
					
					#34
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 18:32
Dobra dodalem ten natyw. Kompiluje kompilatorem z tej strony i nic dale to samo. Nie ogarniam
Wyraźnie dużą czcionką miałeś napisane w pierwszym poście że musisz kompilować lokalnie a nie przez www <facepalm>
			
				
					
						
					
					#35
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 19:14
Użytkownik newax edytował ten post 25.06.2011 19:36
			
				
					
						
					
					#36
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 19:56
			
				
					
						
					
					#37
					
					
				
				
				
					
				
			
				
			
			
			Napisano 25.06.2011 21:18
			
				
					
						
					
					#38
					
					
				
				
				
					
				
			
				
			
			
			Napisano 26.06.2011 00:02
Siema:)A dało by radę zrobić, aby klasy do awansu były od początku widoczne, a jak je wybieramy to pisało, że trzeba zdobyć jakiś lvl na innej klasie? I aby po awansie można było by grać nadal klasą o stopień niższy.
Dalo by rade takie cos zrobic takze do tego sposobu z frakcja DarkaGL?
			
				
					
						
					
					#39
					
					
				
				
				
					
				
			
				
			
			
			Napisano 26.06.2011 09:16

Popularny
public WybierzKlase_Frakcje(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50], szTmp[5];
for(new i=1; i <= ilosc_klas; i++)
{
if(equali(data,frakcja_klas[i]))
{
if(awansuje_z[i])
{
new bool:moze = false;
WczytajDane(id, awansuje_z[i]);
if(poziom_gracza[id] >= awanse[ZnajdzAwans(awansuje_z[i], i)][2])
moze = true;
WczytajDane(id, i);
if(moze) formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
else formatex(klasa, charsmax(klasa), "\r%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
}
else
{
WczytajDane(id, i);
formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
}
num_to_str(i, szTmp, charsmax(szTmp));
menu_additem(menu2, klasa, szTmp);
}
}
WczytajDane(id, klasa_gracza[id]);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu2);
client_cmd(id, "spk QTM_CodMod/select");
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
item = str_to_num(data);
if(awansuje_z[item])
{
WczytajDane(id, awansuje_z[item]);
new bool:moze, a = ZnajdzAwans(awansuje_z[item], item)
if(poziom_gracza[id] >= awanse[a][2])
moze = true;
WczytajDane(id, klasa_gracza[id]);
if(!moze)
{
client_print(id, print_chat, "[COD:MW] Aby uzywac tej klasy musisz zdobyc %i poziom na klasie %s!", awanse[a][2], nazwy_klas[awansuje_z[item]]);
return PLUGIN_CONTINUE;
}
}
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
nowa_klasa_gracza[id] = item;
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
return PLUGIN_CONTINUE;
}
Nie testowane. Jeżeli nie chcesz czerwonego koloru dla klas, których nie możesz używać, podmień public WybierzKlase_Frakcje na taki, jaki był w domyślnych frakcjach.
			
				
					
						
					
					#40
					
					
				
				
				
					
				
			
				
			
			
			Napisano 26.06.2011 17:46
Również z jednym lub większą ilością słów kluczowych: CoD Nowy
		
		
		
		Paczka perkow.perki Napisany przez NAVIK, 24.03.2025  | 
	
		
  | 
	
		
			 | 
	
|||
		
		
		
			CoD Nowy
		
		Plugin na małe mapy.Napisany przez NAVIK, 16.02.2025  | 
	
		
  | 
	
		
			 | 
	
|||
		
		
		
			CoD Nowy
		
		Dodatkowe, osobne trzy linie opisu klasNapisany przez Rafii, 27.01.2025  | 
	
		
  | 
	
		
			 
		
		
	 | 
	
|||
		
		
		
			CoD Nowy
		
		problem z kompilacjaNapisany przez Anonimowy09, 21.01.2025  | 
	
		
  | 
	
		
			 
		
		
	 | 
	
|||
		
		
		
			CoD Nowy
		
		problem z HUDNapisany przez Anonimowy09, 10.01.2025  | 
	
		
  | 
	
		
			 
		
		
	 | 
	
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych


 
Dodatki SourceMod






				
				
				
				






