Witam
Mam pytanie, jak by wyglądała funkcja, dzięki której można zamrozić z pistoletu wroga na3 sekundy ?
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.
|
Guest Message by DevFuse
Funkcja Zamrożenia.
Temat rozp. Złotówka, 06.09.2010 17:48
6 odpowiedzi w tym temacie
#1
Napisano 06.09.2010 17:48
#2
Napisano 06.09.2010 18:15
Wg mnie taka na wpół okrągła, wpadająca w błękit, mieniąca się w kolorach tęczy jak ją wystawisz na słońce.
-------------
Gracz się nie może się ruszyć, kiedy ustawisz mu szybkość bliską zera (np. 0.001). Dróg do osiągnięcia tego jest wiele, np
fun + set_user_maxspeed
fakemeta + set_pev(id, pev_maxspeed, 0.001)
Jak ma go zamrozić też w powietrzu to w prethinku zeruj mu prędkość
-------------
Gracz się nie może się ruszyć, kiedy ustawisz mu szybkość bliską zera (np. 0.001). Dróg do osiągnięcia tego jest wiele, np
fun + set_user_maxspeed
fakemeta + set_pev(id, pev_maxspeed, 0.001)
Jak ma go zamrozić też w powietrzu to w prethinku zeruj mu prędkość
set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0});
#3
Napisano 06.09.2010 18:21
Ok, wszystko ładnie pięknie a jak zrobić funkcje w prethinku, żeby zamrażało go przy strzale z pistoletu na 3 sekundy ?
Użytkownik Znak Zapytania? edytował ten post 06.09.2010 18:22
#4
Napisano 06.09.2010 18:26
new Float:gfFrost[33]w tej tablicy będzie czas upłynięcia zamrożenia
strzał z pistoletu to Ham_TakeDamage ze sprawdzeniem czy atakujący używa pistoletu (get_user_weapon(attacker))
jak będzie miał to daj
gfFrost[id] = get_gametime()+3.0
prethink łapiesz fakemeta register_forward(FM_PlayerPreThink); lub forwardem z engine
w nim sprawdzasz
if(get_gametime() < gfFrost[id])jeśli prawda to gracz ma być zamrożony
przy spawnie resetuj zamrożenie
gfFrost[id] = get_gametime()
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #define PISTOLS ((1<<CSW_GLOCK18)|(1<<CSW_USP)|(1<<CSW_P228)|(1<<CSW_DEAGLE)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)) new Float:gfFrost[33]; public plugin_init(){ register_forward(FM_PlayerPreThink, "fwPreThink", 1); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage", 1); RegisterHam(Ham_Spawn, "player", "fwSpawn", 1); } public fwPreThink(id){ if(get_gametime() < gfFrost[id]){ set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0}); } } public fwSpawn(id){ gfFrost[id] = get_gametime(); } public fwTakeDamage(id, inf, attacker){ if(is_user_connected(attacker)){ new wid = get_user_weapon(attacker); if(PISTOLS & (1<<wid)){ gfFrost[id] = get_gametime() + 3.0; } } }
#5
Napisano 06.09.2010 19:24
nie chce podwazac odpowiedzi mistrza ;-D ale przeciez mag ma to chyba w standardzie wystarczy wyszukac:
agi=(BASE_SPEED / 2)
ta linijka odpowiada za to na ile ma dzielic predkosc ofiary.. to jest z orginalu diablo ale radze uzyc latki
[5.9l] Moce pistoletowe wybranych klas nie działają
if((attacker_id!=id)&&player_class[attacker] == Mag)
{
if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN)
{
agi=(BASE_SPEED / 2)
set_speedchange(id)
if(DemageTake[id]==0)
{
DemageTake[id]=1
set_task(11.0, "funcReleaseVic", id)
set_task(11.0, "funcReleaseVic2", id)
set_task(2.0, "funcDemageVic", id+GLUTON)
}
}
}
agi=(BASE_SPEED / 2)
ta linijka odpowiada za to na ile ma dzielic predkosc ofiary.. to jest z orginalu diablo ale radze uzyc latki
[5.9l] Moce pistoletowe wybranych klas nie działają
#6
Napisano 06.09.2010 20:55
nie znam dobrze diablomoda, autor zapytał o funkcję zamrażania to napisałem jak to można zrobić jeśli jest to w standardzie tym lepiej dla niego
#7
Napisano 07.09.2010 17:10
Ok, dzięki jakoś sobie dam rade w razie czego jeszcze tutaj napisze, więc proszę nie zmykać tematu, Dla obu leci Reput.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych