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
 

Zdjęcie
CS:GO

CodMod_Stary - Dodanie obrazen dla klasy

cs:go

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 08.08.2015 18:25

opis

W tym tutku postaram sie opisac w jaki sposob dodac do klasy 1/x na zabicie lub zadanie obrazen z broni lub ze wszystkiego.

 

No to pierw musimy standardowo otworzyc plik .sp naszego silnika :P. Nastepnie musimy zdecydowac do czego chcemy dodac obrazenia, klasy lub itemu. Ja pokaze na klasie, a wiec przechodzimy do:

public Action:TakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
{
	if(!IsValidClient(victim))
		return Plugin_Continue;

	if(informacje_itemu_gracza[victim][0] == 13 && damagetype & DMG_FALL)
		return Plugin_Handled;

	if(IsValidClient(attacker) && GetClientTeam(victim) != GetClientTeam(attacker))
	{

i teraz przypisujemy funkcje dla klasy czyli:

if(klasa_gracza[indeks] == NAZWA_KLASY)

Zamiast "indeks" musimy wpisac dla kogo ma byc sprawdzany warunek czyli ofiara lub atakujacy (victim, attacker).

 

Nastepnie wybieramy bron, jezeli obrazenia maja byc bez ustalonej broni to wystarczy pominac ten punkt. Czyli:

if(StrEqual(weapon, nazwy_broni[NUMER]) && damagetype & TYP_OBRAZEN)

zamiast NUMER podajemy numer dla broni w zmiennej nazwy_broni. Oczywiscie mozemy wpisac bezposrednio nazwe broni ale jezeli pozniej chcielibysmy zmienic jedna nazwe broni dla wszystkich to nie bedziemy musieli sie meczyc. Jezeli natomiast chodzi o TYP_OBRAZEN musimy wybrac od czego maja byc zadawane obrazenia, nizej lista z amxa (dla amx i sourcemod wszystko jest bez zmian, niektore tylko moga nie dzialac).

 

Opcjonalnie kto chce moze dodac 1/x (w tym przypadku 1/3), na zadanie tych obrazen czyli zamienia powyzszy kod na:

if(StrEqual(weapon, nazwy_broni[NUMER]) && damagetype & TYP_OBRAZEN && GetRandomInt(1, 3) == 1)

Nastepnie ustawiamy pomijanie obrazen dla okreslonej klasy / itemu (opcjonalnie). Klasa obronca posiada odpornosc na wszystkie umiejetnosci klas wiec musimy dodac ten warunek by obrazenia byly omijane, oczywiscie kto chce moze ominac.

if(klasa_gracza[victim] != Obronca && informacje_itemu_gracza[victim][0] != 30)

Teraz czas na przypisanie obrazen, jezeli mamy zabijac natychmiastowo gracza to wpisujemy:

dmg += GetClientHealth(victim)+1;
zabicie = 1;

natomiast jezeli chcemy tylko zadac obrazenia to wpisujemy:

dmg += ILOSC;

zamiast ILOSC podajemy sume, czyli np 20. Jest jeszcze trzecia opcja, mozemy ustawic odpornosc na obrazenia (np wykryc obrazenia od strzalu w glowe tak jak to ma jeden item i ustawic odpornosc). Odpornosc ustawiamy w ten sposob:

odpornosc = 1;

No i to by bylo na tyle. Nizej kod funkcji dla takedamage, 1/3 szans na natychmiastowe zabicie z nova dla rushera:

Spoiler

 

Lista typow obrazen:

Spoiler

  • +
  • -
  • 0

b35020692_qesnxqa.png


#2 Taurinn

    Zaawansowany

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:104
  • Lokalizacja:Adelsheim
Offline

Napisano 03.02.2016 21:12

A jak zrobic zeby bylo tylko z PPM?


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cs:go

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych