←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Klasa która może mieć jedynie określone perki

  • +
  • -
Fili:P - zdjęcie Fili:P 30.06.2012

W tym poradniku przedstawię wam w jaki sposób stworzyć klasę, która będzie mogła mieć tylko konkretne perki. No więc zacznijmy. Mamy podstawową klasę:

#include <amxmodx>
#include <codmod>

new const nazwa[] = "Henio";
new const opis[] = "Brak";
new const bronie = 1;
new const kondycja = 69;
new const inteligencja = 2;
new const wytrzymalosc = 15;


public plugin_init()
		cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

Najpierw wypadałoby dodać tablice zawierająca id perków, które klasa będzie mogła nosić. Więc dodajemy pod:
new const wytrzymalosc = 15;
To:
new const perki[]= // id perkow ktore moze miec klasa
{
1,
2,
5
}
W tym przypadku klasa będzie mogła nosić perki o id 1,2 i 5. Oczywiście możemy według własnego zdania dodawać perki do tablicy (wystarczy je edytować tu). Dobrze mamy już perki, ale teraz musimy wprowadzić to w działanie.

Najpierw dodajmy zmienną, która się przyda,
pod:
new const perki[]= // id perkow ktore moze miec klasa
{
1,
2,
5
}
Dodaj to:
new bool:ma_dobry_perk[33];
Musimy przypisać forwardowi cod_perk_changed sprawdzenie czy perk ma id 1,2 lub 5, jeżeli nie to musimy go zmienić. Więc pod:
public plugin_init()
		cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
Dodajemy to:
public cod_perk_changed(id, perk)
{
ma_dobry_perk[id]=false;
for(new i=0; i {
if(perki[i]==perk)
ma_dobry_perk[id] = true;
}
if(!ma_dobry_perk[id])
cod_set_user_perk(id, perki[random_num(0,sizeof perki-1)]);

return COD_CONTINUE;
}

No i proszę bardzo stworzyliśmy klasę, która może mieć tylko konkretne perki.


Jeżeli chcecie zamiast id podawać nazwę perku to zaczynajmy.
Zamień:
new const perki[]= // id perkow ktore moze miec klasa
{
1,
2,
5
}
Na:
new const perki[][]= // nazwy perkow ktore moze miec klasa
{
"Skrzydla Archaniola",
"Noz Cienia",
"Skazaniec"
}
Następnie, zamień:
public cod_perk_changed(id, perk)
{	
	ma_dobry_perk[id]=false;
	for(new i=0; i	{
		if(perki[i]==perk)
			ma_dobry_perk[id] = true;
	}
	if(!ma_dobry_perk[id])
		cod_set_user_perk(id, perki[random_num(0,sizeof perki-1)]);

	return COD_CONTINUE;
}
Na:
public cod_perk_changed(id, perk)
{
ma_dobry_perk[id]=false;
		new szPerk[64];
		cod_get_perk_name(perk, szPerk, 63);
for(new i=0; i if(equal(perki[i], szPerk))
ma_dobry_perk[id] = true;
}
if(!ma_dobry_perk[id])
cod_set_user_perk(id, cod_get_perkid(perki[random_num(0,sizeof perki-1)]));

return COD_CONTINUE;
}
I gotowe teraz do tablicy zamiast id możemy dodawać nazwy perków.
speedkill (30.06.2012 13:57):
Zamień [sma] na [code=auto:0]
Odpowiedz

  • +
  • -
SuchyBiceps - zdjęcie SuchyBiceps 17.04.2017

Wiem na pewno, że zamiast:

new const bronie = 1;

Powinno być:

new const bronie = (1<<CSW_BRON);

W miejscu BRON wpisujesz wybraną przez siebie broń.

 

I po:

new const bronie = (1<<CSW_BRON);

Brakuje:

new const zdrowie = 10;
Odpowiedz