←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Dodawanie itemu z losową wartością (Stary...

  • +
  • -
Goliath - zdjęcie Goliath 04.05.2011

Z racji tego, że dużo osób ma z tym problemy, postanowiłem napisać poradnik. Wbrew pozorom nie jest to takie trudne.

CoD Stary
1. Otwieramy plik QTM_CodMod.sma.
2. Szukamy publica DajPrzedmiot.
3. W switch(przedmiot) dodajemy:
case nr. itemu:
{
informacje_przedmiotu_gracza[id][1] = random_num(20, 40); //tutaj ustalamy z jakiego zakresu ma losować wartość itemu
}

4. W opisie itemu zmieniamy wartość jaką chcemy losować na LW np.:
"Zadajesz LW obrazen wiecej"


I teraz możemy użyć tej wartości w naszym itemie np. tak:
	if(informacje_przedmiotu_gracza[idattacker][0] == numer itemu)
damage += float(informacje_przedmiotu_gracza[idattacker][1]);


CoD Nowy
1. Otwieramy .sma perku, jaki chcemy edytować.
2. Zmieniamy:
cod_register_perk(nazwa, opis)

Na:
cod_register_perk(nazwa, opis, 20, 40) //tutaj ustalamy z jakiego zakresu ma losować wartość itemu

(Pamiętaj, że argumenty "nazwa" i "opis", mogą nazywać się inaczej niż w przykładzie.)
3. W opisie perku zmieniamy wartość jaką chcemy losować na LW np.:
"Zadajesz LW obrazen wiecej"

4. Teraz dodajemy nową zmienną:
new wartosc_perku[33];

5. Zmieniamy:
public cod_perk_enabled(id)

Na:
public cod_perk_enabled(id, wartosc)

6. Wewnątrz w/w publicu dodajemy:
wartosc_perku[id] = wartosc;


Przykładowe zastosowanie tej metody:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(ma_perk[idattacker])
SetHamParamFloat(4, damage+float(wartosc_perku[idattacker]))

return HAM_IGNORED;
}


Mam nadzieję, że coś zrozumieliście ;)
Odpowiedz

Kronzu - zdjęcie Kronzu 16.09.2012

Da się to przerobić na 1/lw na zabicie 1/3 do 1/8 czyli zmieniam (Cod Stary):

To:
informacje_przedmiotu_gracza[id][1] = random_num(20, 40);

Na to:
informacje_przedmiotu_gracza[id][1] = random_num(3, 8);


i


To:
damage += float(informacje_przedmiotu_gracza[idattacker][1]);

Na to:
damage = float(health);


I to bezie działać?
Użytkownik Kronzu edytował ten post 16.09.2012 12:59
Odpowiedz