←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Niewidzialność dla wybranej klasy

  • +
  • -
Azahiel - zdjęcie Azahiel 08.10.2010

Cześć.

Dziś postaram się wam opisać w jaki sposób dodać niewidzialność dla wybranej klasy.

Na sam początek dodajemy nową klasę według tego tematu lub edytujemy którąś z aktualnych.

No i przystępujemy do pracy:

W funkcji CurWeapon(id) szukamy:

if(weapon == CSW_C4)
podkladajacy = id;


I zaraz po tym dodajemy:
if(klasa_gracza[id] == NazwaKlasy && weapon == CSW_KNIFE) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 15);


W tym wypadku wybrana przez nas klasa będzie prawie niewidzialna podczas używania noża. Aby zapobiec błędom iż po zmianie broni klasa dalej pozostaje niewidzialna należy zdefiniować widzialność klasy podczas używania każdej z posiadanej przez nią broni np:

if(klasa_gracza[id] == NazwaKlasy && weapon == CSW_GLOCK18) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
if(klasa_gracza[id] == NazwaKlasy && weapon == CSW_USP) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);


Krótkie objaśnienia:

w miejsce NazwaKlasy wpisujemy nazwę klasy która ma być niewidzialna.

weapon == CSW_KNIFE w tym miejscu definiujemy broń podczas używania której klasa jest niewidzialna (ustalane osobno dla każdej broni)

kRenderTransAlpha, X : tu określamy "widzialność" gdzie za X wprowadzamy 0 co oznacza całkowitą niewidzialność a 255 całkowitą widzialność (oczywiście możemy wstawiać każdą wartość w przedziale od 0 do 255).

Jest to mój pierwszy tutorial więc proszę o wyrozumiałość ;)
Użytkownik Azahiel edytował ten post 08.10.2010 11:24
Odpowiedz

  • +
  • -
Pawex - zdjęcie Pawex 08.10.2010

Bardzo fajny pomysl, nie wpadlem na takie cos bo bym sobie to tez zrobil :D Masz plusa, bo dzięki twojemu pomyslowi zrobie cos podobnego :D
Odpowiedz

  • +
  • -
BaLLooN - zdjęcie BaLLooN 09.10.2010

Fajne, lecz mam mały problem. Jak robię wszystko według tutorialu to jak kompiluje pokazuje mi 2 ostrzeżenia. Wchodzę na serwer i jak się kogoś pytam "Jestem Widzialny" to uzyskuje odp. "Nie". Pomóżcie mi to zrobić
Odpowiedz

  • +
  • -
Azahiel - zdjęcie Azahiel 09.10.2010

Zdefiniowałeś widzialność dla poszczególnych broni? Daj sma.
Odpowiedz

  • +
  • -
Pitek - zdjęcie Pitek 09.10.2010

jeśli dana klasa otrzyma jakiś item to również pozostaje niewidzialna ?
Odpowiedz

  • +
  • -
Azahiel - zdjęcie Azahiel 09.10.2010

Tak. Ale spokojnie można to zmienić.
Odpowiedz

  • +
  • -
BaLLooN - zdjęcie BaLLooN 10.10.2010

Wczoraj jakoś pokombinowałem. To tu powklejałem ,tu pousuwałem i działa ;)
Odpowiedz

  • +
  • -
ShoWmaN - zdjęcie ShoWmaN 14.10.2010

A nie łatwiej przy case klasy dopisać

set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255); [zamiast 255 podajemy swoją wartość]

ja mam np. tak:

case Klasa której nie znacie:
{
give_item(id, "weapon_m3");
give_item(id, "weapon_deagle");
give_item(id,"weapon_hegrenade")
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 155);

a jak chcecie niewidzialność to dajecie 0d 13 do 5 najlepszy efekt ;]
Użytkownik ShoWmaN edytował ten post 14.10.2010 19:11
Odpowiedz

  • +
  • -
MieTeK_ - zdjęcie MieTeK_ 14.10.2010

Poradnik jest o tym jak dać niewidzialność dla klasy gdy używa określonej broni :P
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 18.10.2010

a zamiast pisac kazdej broni zrobilem tak :

if(informacje_przedmiotu_gracza[id][0] == nr && weapon == CSW_KNIFE)
{
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 1);
}

if(informacje_przedmiotu_gracza[id][0] == nr && (weapon != CSW_KNIFE))
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255)
}
Odpowiedz

  • +
  • -
Batonik - zdjęcie Batonik 22.10.2010

A co zrobić jeżeli dana klasa ginie z nożem, a wcześniej została wybrana inna klasa i ta wybrana klasa jest niewidzialna ?
Odpowiedz

  • +
  • -
Pawex - zdjęcie Pawex 22.10.2010

Nie ma tego buga.
Odpowiedz

Bratt - zdjęcie Bratt 20.11.2010

Dzięki za tutka +
Odpowiedz

  • +
  • -
NieMaMnie - zdjęcie NieMaMnie 01.04.2011

ale można dać i tak :)
testowałem u siebie - działało

daje to w public CmdStart(id, uc_handle)



if(klasa_gracza[id] == klase_podajesz_sam)
	{
		if(get_user_weapon(id) == CSW_KNIFE)
			set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 5);
		else
			set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
	}
Odpowiedz