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.
|
Ktos nam zadaje Obrazenia
#1
Napisano 31.03.2012 02:15
#2
Napisano 31.03.2012 07:34
#3
Napisano 31.03.2012 09:21
RegisterHam(Ham_TakeDamage, "player", "ham_preTakeDamage", 0);
Tutaj info:
/** * Description: Usually called whenever an entity takes any kind of damage. * Inflictor is the entity that caused the damage (such as a gun). * Attacker is the entity that tirggered the damage (such as the gun's owner). * Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits); * Return type: Integer. * Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits); *
#4
Napisano 31.03.2012 11:40
RegisterHam(Ham_TakeDamage, "player", "ham_preTakeDamage", 0);
Tutaj info:
/**
* Description: Usually called whenever an entity takes any kind of damage.
* Inflictor is the entity that caused the damage (such as a gun).
* Attacker is the entity that tirggered the damage (such as the gun's owner).
* Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
*
No tak .. wczoraj siedzialem pol dnia na tym lecz nie moglem tego ustawic.. zmniejszalo damage ale moje nie przeciwnika
#5
Napisano 31.03.2012 12:25
#6
Napisano 31.03.2012 12:30
if(informacja_przedmiotu_gracza[this][0] = 10)
Ze jezeli ja mam ten przedmiot to przeciwnikowi zmniejsza sie dmg.. i jak zapisac ze dmg sie zmniejsza nie mi tylko przeciwnikowi
Bo taki zapis mi zmniejsza:
damage-=50;
A tutaj mam przyklad Podwojnej i wzmocnionej kamizelki z Coda Starego
if(informacje_przedmiotu_gracza[this][0] == 2 || informacje_przedmiotu_gracza[this][0] == 3) damage-=(float(informacje_przedmiotu_gracza[this][1])<damage)? float(informacje_przedmiotu_gracza[this][1]): damage;
No i jej zadaniem jest zmniejszenie naszego obrazenie ( czyli = zmniejszenie dmg przeciwnika wobec nas)
Tylko ze robilem na przykladzie tego i tez nic to nie daje..
Użytkownik pfk92 edytował ten post 31.03.2012 12:33
#7
Napisano 31.03.2012 12:43
#8
Napisano 31.03.2012 12:54
new informacje_przedmiotu_gracza_1[33][2];
new const nazwy_przedmiotow_1[][]={"Brak" , "Gruba Kamizelka" };
public Death(item,menu)
if(!informacje_przedmiotu_gracza_1[attacker][0]) DajPrzedmiot1(attacker, random_num(1, sizeof nazwy_przedmiotow_1-1));
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker]) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); if(health < 2) return HAM_IGNORED; // I tutaj kod na zmniejszenie obrazenia jezeli sie ma item SetHamParamFloat(4, damage); return HAM_IGNORED; }
public DajPrzedmiot1(id,przedmiot) { informacje_przedmiotu_gracza_1[id][0] = przedmiot; client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]); switch(przedmiot) { case 1: { informacje_przedmiotu_gracza_1[id][1] = 200; } } }
chyba wszystko co potrzebne
A tu podam kolejny przyklad z coda:
if(wytrzymalosc_gracza[this]>0) damage -= redukcja_obrazen_gracza[this]*damage;
a wytrzymalosc gracza zmniejsza otrzymywane dmg ;/
no juz nie mam pojecia jak to ugryzc ;/
Użytkownik pfk92 edytował ten post 31.03.2012 12:58
#9
Napisano 31.03.2012 13:03
#10
Napisano 31.03.2012 13:06
o kurde ....ale botow chyba nie czyta jako gracza wiec oni zadaja normalne obrazenia ?? bo ja sprawdzam to z botami i bd zal jak to dzialalo..
#11
Napisano 31.03.2012 13:09
#12
Napisano 31.03.2012 13:11
pokaż cała funkcje
może nie zwracasz tego co trzeba lub nie używasz SetHamParamFloat
a może masz zarejestrowany takedamamge jako post
#13
Napisano 31.03.2012 13:30
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker]) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); if(health < 2) return HAM_IGNORED; // I tutaj kod na zmniejszenie obrazenia jezeli sie ma item SetHamParamFloat(4, damage); return HAM_IGNORED; }
To jest moje cale Take Damage.. tak jak w codzie tylko ze nie ma itemow (bo chce wlasne wrzucic) moze czegos zapomnialem wrzucic badz skasowalem
To jest takie jak w codzie:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(this) || !is_user_connected(this) || informacje_przedmiotu_gracza[this][0] == 24 || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker])
return HAM_IGNORED;
new health = get_user_health(this);
new weapon = get_user_weapon(idattacker);
if(health < 2)
return HAM_IGNORED;
if(informacje_przedmiotu_gracza[this][0] == 27 && informacje_przedmiotu_gracza[this][1]>0)
{
informacje_przedmiotu_gracza[this][1]--;
return HAM_SUPERCEDE;
}
if(wytrzymalosc_gracza[this]>0)
damage -= redukcja_obrazen_gracza[this]*damage;
if(informacje_przedmiotu_gracza[this][0] == 2 || informacje_przedmiotu_gracza[this][0] == 3)
damage-=(float(informacje_przedmiotu_gracza[this][1])<damage)? float(informacje_przedmiotu_gracza[this][1]): damage;
if(informacje_przedmiotu_gracza[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
damage*=2.0;
if(informacje_przedmiotu_gracza[idattacker][0] == 10)
damage+=informacje_przedmiotu_gracza[idattacker][1];
if(informacje_przedmiotu_gracza[this][0] == 12)
damage-=(5.0<damage)? 5.0: damage;
if(weapon == CSW_AWP && informacje_przedmiotu_gracza[idattacker][0] == 13)
damage=float(health);
if(informacje_przedmiotu_gracza[idattacker][0] == 21)
damage+=10;
if(informacje_przedmiotu_gracza[idattacker][0] == 22)
damage+=20;
if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
{
if((informacje_przedmiotu_gracza[idattacker][0] == 9 && random_num(1, informacje_przedmiotu_gracza[idattacker][1]) == 1) || informacje_przedmiotu_gracza[idattacker][0] == 10)
damage = float(health);
}
if(weapon == CSW_KNIFE)
{
if(informacje_przedmiotu_gracza[this][0] == 4)
damage=damage*1.4+inteligencja_gracza[idattacker];
if(informacje_przedmiotu_gracza[idattacker][0] == 8 || (klasa_gracza[idattacker] == Snajper && random(2) == 2) || klasa_gracza[idattacker] == Komandos && !(get_user_button(idattacker) & IN_ATTACK))
damage = float(health);
}
if(informacje_przedmiotu_gracza[this][0] == 26 && random_num(1, informacje_przedmiotu_gracza[this][1]) == 1)
{
SetHamParamEntity(3, this);
SetHamParamEntity(1, idattacker);
}
SetHamParamFloat(4, damage);
return HAM_IGNORED;
}
#14
Napisano 31.03.2012 13:43
#15
Napisano 31.03.2012 14:32
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !postac_gracza[idattacker]) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); if(health < 2) return HAM_IGNORED; if(informacje_przedmiotu_gracza_1[this][0] == 1) damage-=(float(informacje_przedmiotu_gracza_1[this][1])<damage)? float(informacje_przedmiotu_gracza_1[this][1]): damage; SetHamParamFloat(4, damage); return HAM_HANDLED; }
public DajPrzedmiot1(id,przedmiot) { informacje_przedmiotu_gracza_1[id][0] = przedmiot; client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]); switch(przedmiot) { case 1: { informacje_przedmiotu_gracza_1[id][1] = 2000; } } }
zrobilem nawet tak zeby mi nie zadawali w ogóle dmg dla pewnosci.. ale nadal nie dziala ;/ co ja zle robie ?
nie no ja tego nie ogarniam.. chcialem nawet w codzie zrobic item (zeby zabieral nam mniej hp czyli jak wytrzymalosc ) no ale nie idzie.. poakze ktos wzor jak zrobic ze jak sie ma dany item to obrazenia (ktory nam zadaja) bd o polowe mniejsze...(Dark ty w metin modzie to miales.. patrzylem ale nie ogarnalem)
Użytkownik pfk92 edytował ten post 31.03.2012 14:32
#16
Napisano 31.03.2012 15:01
#17
Napisano 31.03.2012 15:29
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker)) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); if(informacje_przedmiotu_gracza_1[this][0] == 1) damage-=(float(informacje_przedmiotu_gracza_1[this][1])<damage)? float(informacje_przedmiotu_gracza_1[this][1]): damage; SetHamParamFloat(4, damage); return HAM_HANDLED ; }
public DajPrzedmiot1(id,przedmiot) { informacje_przedmiotu_gracza_1[id][0] = przedmiot; client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_przedmiotow_1[informacje_przedmiotu_gracza_1[id][0]]); switch(przedmiot) { case 1: { informacje_przedmiotu_gracza_1[id][1] = random_num(3,6); } } }
dalej nic
#18
Napisano 31.03.2012 16:05
zamiast HAM_IGNORED zwracaj HAM_HANDLED
HAM_OVERRIDE
twoj ostatni kod zmniejsza obrazenia o losową liczbę od 3 do 6 więc tego mozesz nie zauwazyć przy strzale najlepiej zrob sobie wyswietlanie damage na początku i przed sethamparamfloat
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
#19
Napisano 31.03.2012 16:32
informacje_przedmiotu_gracza_1[id][1] = 2000;
Probowalem nawet tak i nic
okej zaraz wszystko sprawdze i dam znac ;]
ehhh no nadal nic ;/
Czy ktos byl by w stanie napisac gotowy item z gotowym take damage ?? jezeli nie to podac przyklad.. zebym chociaz wiedzial jak to robic. .bo moze ja popelniam gdzies blad
Użytkownik pfk92 edytował ten post 31.03.2012 16:20
#20
Napisano 31.03.2012 17:03
informacje_przedmiotu_gracza_1[id][1] = 2000;
Probowalem nawet tak i nic
bo wtedy podstawiane byly damage
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker)) return HAM_IGNORED; new health = get_user_health(this); new weapon = get_user_weapon(idattacker); if(informacje_przedmiotu_gracza_1[this][0] == 1) damage/=2; SetHamParamFloat(4, damage); return HAM_OVERRIDE ; }jesli gracz ma item to bedzie dostawać polowe mniejsze dmg
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych