←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Mrożące itemy

djpatryk - zdjęcie djpatryk 08.06.2010

Witam. Mam pytanie jak zrobić zamrażające itemy. Mam pomysł na totem zamrażający, lub zamienić kulę z ognistej na zamrażającą
Odpowiedz

  • +
  • -
ZiuTeK - zdjęcie ZiuTeK 08.06.2010

Pewnie nikt ci nie da gotowego kodu wiec moze mala podpowiedz, gdy mag strzela z pistoletu uzywana jest funkcja zmniejszajaca predkosc.
Mozesz poprobowac z tym.
Calkowite zamrozenie mozesz wyciagnac z kodu war3fta, jest item od elfa, takie liany. To sie nazywa chyba beems cos tam.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 08.06.2010

samrozenie = set_user_maxspeed(id,0.1) + ustawienie grubego niebieskiego glow'a na modelu
Odpowiedz

Mesh - zdjęcie Mesh 08.06.2010

a dajac
set_user_maxspeed(id,350)
do jakiegos itemu bedziemy mieli szybkosc ? czy oprócz tego trzeba stworzyc jakas funkcje?

a co do set_user_maxspeed(id,0.1) nie kapinuj z war3ft a ni firebolami tylko zrob normalnie 1/9 np ;]
Odpowiedz

djpatryk - zdjęcie djpatryk 08.06.2010

Przepraszam bardzo goq. Gdzie to wkleić?
Odpowiedz

Screeaam... - zdjęcie Screeaam... 08.06.2010

Przepraszam bardzo goq. Gdzie to wkleić?


Zależy, co chcesz uzyskać, bo jak zamrażanie poprzez strzelanie do przeciwnika, to w public Damage, jeżeli np. na Smoke, to musisz odpowiednią funkcje stworzyć.
Odpowiedz

Mesh - zdjęcie Mesh 08.06.2010

da sie na smoke? ze wolnej chodzi?
moze jakis kod zapodacie
Odpowiedz

Screeaam... - zdjęcie Screeaam... 08.06.2010

		if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
{
new greModel[64]
entity_get_string(ptd, EV_SZ_model, greModel, 63)

if(equali(greModel, "models/w_smokegrenade.mdl" ))
{
new id = entity_get_edict(ptd,EV_ENT_owner)

if (is_user_connected(id)
&& is_user_connected(ptr)
&& is_user_alive(ptr)
&& smoke_zamrazacz[id] > 0
&& get_user_team(id) != get_user_team(ptr))
//reszta kodu, czyli to zamrazanie
}
}


To kod od zabijania 1/x ze smoke jak dotknie gracza, możesz zamienić, że będzie "zamrażać".
Użytkownik Screeaam... edytował ten post 08.06.2010 21:57
Odpowiedz

djpatryk - zdjęcie djpatryk 09.06.2010

models/w_smokegrenade.mdl

Skąd można wziąć ten model?
Odpowiedz

  • +
  • -
camilost - zdjęcie camilost 09.06.2010

Ten model jest standardowo w csie (Zapewne masz steama i go w cstrike nie masz, ale w gfc jest;) )
Odpowiedz

djpatryk - zdjęcie djpatryk 09.06.2010

Scream i to dodać do public Damage?
Odpowiedz

Mesh - zdjęcie Mesh 09.06.2010

To kod od zabijania 1/x ze smoke jak dotknie gracza, możesz zamienić, że będzie "zamrażać".


nie widzisz? skopiuj jedna linijke znajdz ten kod wklej pod tym to zmienione i finito.
Odpowiedz

djpatryk - zdjęcie djpatryk 09.06.2010

if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
{
new greModel[64]
entity_get_string(ptd, EV_SZ_model, greModel, 63)

if(equali(greModel, "models/w_smokegrenade.mdl" ))
{
new id = entity_get_edict(ptd,EV_ENT_owner)

if (is_user_connected(id)
&& is_user_connected(ptr)
&& is_user_alive(ptr)
&& smoke_zamrazacz[id] > 0
&& get_user_team(id) != get_user_team(ptr))
set_user_maxspeed(id,0.1)
}
}


Tak ma być?
Użytkownik djpatryk edytował ten post 09.06.2010 16:50
Odpowiedz

Screeaam... - zdjęcie Screeaam... 09.06.2010

Wtedy, jeżeli dotnie smoke gracza to go unieruchomi na stałe.

Najlepiej po tym ustawić taska, który będzie przywracał szybkość po X sekundach.
Użytkownik Screeaam... edytował ten post 09.06.2010 17:52
Odpowiedz

djpatryk - zdjęcie djpatryk 09.06.2010

To powiesz czy dokładnie dać? Sory że jestem taki upierdliwy..
Odpowiedz

Screeaam... - zdjęcie Screeaam... 09.06.2010

if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
                {
                        new greModel[64]
                        entity_get_string(ptd, EV_SZ_model, greModel, 63)
                        
                        if(equali(greModel, "models/w_smokegrenade.mdl" ))      
                        {
                                new id = entity_get_edict(ptd,EV_ENT_owner)
                                
                                if (is_user_connected(id) 
                                && is_user_connected(ptr) 
                                && is_user_alive(ptr) 
                                && smoke_zamrazacz[id] > 0
                                && get_user_team(id) != get_user_team(ptr))
                                set_user_maxspeed(id,0.1) 
                                set_task(X.0,"odmrozenie", id)
                        }
                }

public odmrozenie(id)
{
                set_user_maxspeed(id, Y.0)
}

X - czas zamrożenie.
Y - ilość szybkości po odmrożeniu.

Nie wiem czy to bd działać. Możesz dodatkowo dodać glow'a na gracza który ma zamrożenie.
Odpowiedz

djpatryk - zdjęcie djpatryk 09.06.2010

new player_b_smoke[33] = 1

player_b_smoke[id] = 0

if (player_b_smoke[id] > 0)
	{
		num_to_str(player_b_smoke[id],TempSkill,10)
		add(itemEffect,199,"Mozesz zamrozic przeciwnika granatem Smoke")
	}

case 95:
		{
			player_item_name[id] = "Frozen Smoke"
			player_item_id[id] = rannum
			player_b_smoke[id] = 1
			item_durability[id] = 250
			show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz zamrozic przeciwnika granatem Smoke",player_item_name[id],player_b_smoke[id])
		}

if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
                {
                        new greModel[64]
                        entity_get_string(ptd, EV_SZ_model, greModel, 63)
                        
                        if(equali(greModel, "models/w_smokegrenade.mdl" ))      
                        {
                                new id = entity_get_edict(ptd,EV_ENT_owner)
                                
                                if (is_user_connected(id) 
                                && is_user_connected(ptr) 
                                && is_user_alive(ptr) 
                                && smoke_zamrazacz[id] > 0
                                && get_user_team(id) != get_user_team(ptr))
                                set_user_maxspeed(id,0.1) 
                                set_task(8.0,"odmrozenie", id)
                        }
                }

public odmrozenie(id)
{
set_user_maxspeed(id, 150.0)
}


Tak ma być?

PS jaki ma być speed żeby o połowe mniej biegać? I kiedy to spowolnienie minie?
Użytkownik djpatryk edytował ten post 09.06.2010 20:44
Odpowiedz

Screeaam... - zdjęcie Screeaam... 09.06.2010

public odmrozenie(id)
{
                set_user_maxspeed(id, 5.0)
}


To na koniec sma.

Odmrożenie minie u Cb po 8 sekundach, i nada graczowi szybkość 5.0 -.- wpisz zamiast 5.0 270.0
Użytkownik Screeaam... edytował ten post 09.06.2010 19:18
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 09.06.2010

no tak ale funkcja ktora podaliscie jest wywolywana jak ktos dotknie granatu a nie wejdzie w dym xP
Odpowiedz

Screeaam... - zdjęcie Screeaam... 09.06.2010

no tak ale funkcja ktora podaliscie jest wywolywana jak ktos dotknie granatu a nie wejdzie w dym xP


Przecież to napisałem kilka postów wyżej:

Wtedy, jeżeli dotnie smoke gracza to go unieruchomi na stałe.


A jak zrobić, aby dym zamrażał?
Odpowiedz