←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] odpowiednik HAM_IGNORED w PLU...


Best Answer DarkGL 13.01.2014 17:27

Trochę własnej pracy masz wszystko podane w temacie R3X i jest tam informacja o bytach innych niż bronie

Go to the full post
Locked

  • +
  • -
Rivit's Photo Rivit 11.01.2014

Witam

 

  1. Czego odpowiednikiem jest HAM_IGNORED? HANDLED czy CONTINUE?
  2. Co jest szybsze Ham_Killed czy client_death (ma wiecej parametrow)?
  3. Jak skrocic to?
    exp = exp / 2

 

Quote

  • +
  • -
Droso's Photo Droso 11.01.2014

1. Nie wiem jakie mają wartości - ale IGNORED podobne jest do CONTINUE w Hamie :).

2. W Ham_Killed mozesz ustawic czy Pre/Post - wiec pytanie jest głupie? xD.

3. Nie wiem o co ci chodzi?

 

 

Quote

  • +
  • -
dasiek's Photo dasiek 11.01.2014

3)

exp /= 2 ; 
Quote

  • +
  • -
Rivit's Photo Rivit 11.01.2014

  1. proszę o wypowiedz pewną
  2. Mam w pluginie i to i to, a czy client_death też jest "post"?

@up

#define true false Dobre

Quote

  • +
  • -
Droso's Photo Droso 11.01.2014

 

  1. proszę o wypowiedz pewną
  2. Mam w pluginie i to i to, a czy client_death też jest "post"?

@up

#define true false Dobre

 

  1. Co jest nie pewne? Napisałem, że jest podobne. HAM_IGNORED tak samo jak PLUGIN_CONTINUE stopuje funkcje, nie zdarzenie. Czyli HAM_IGNORED to odpowiednik PLUGIN_CONTINUE.
  2. Jak pytasz co lepiej używać, to lepiej używać Ham_Killed (HAM jest i tak częściej używany, bardziej znany itd.). Chyba, że chcesz mieć więcej informacji o zabiciu to użyj client_death :P, bo w HAM'ie to trzeba ręcznie pobierać.. client_death - post.

 

Co do 1. chodziło o to, że są to #define i nie znam ich wartości :D, zajrzyj do .inc to się dowiesz :D.

Pewnie i PLUGIN_CONTINUE i HAM_IGNORED to 0 :)


Edited by HubertTM, 11.01.2014 18:27.
Quote

  • +
  • -
Rivit's Photo Rivit 11.01.2014

IGNORED 1

CONTINUE 0

 

A czy z Ham_Killed można pobrać miejsce trafienia?

Quote

  • +
  • -
Droso's Photo Droso 11.01.2014

Z pluginu benia.

new bool:hs=get_pdata_int(vid, 75)==HIT_HEAD, // czy headshot

Zostało to użyte w Ham_TakeDamage, jednak testowałem to w Ham_Killed kiedyś i wydawało się, że działało :P. (Testowałem Pre i Post chyba :P)

 

vid - ten co ginie :P


Edited by HubertTM, 11.01.2014 18:39.
Quote

  • +
  • -
Rivit's Photo Rivit 11.01.2014

Z pluginu benia.

new bool:hs=get_pdata_int(vid, 75)==HIT_HEAD, // czy headshot

Zostało to użyte w Ham_TakeDamage, jednak testowałem to w Ham_Killed kiedyś i wydawało się, że działało :P. (Testowałem Pre i Post chyba :P)

 

vid - ten co ginie :P

 

co to pdata wogóle?

Quote

  • +
  • -
K!113r's Photo K!113r 11.01.2014

Jak dobrze pamiętam jest to prywatna pamięć bytów.

Quote

  • +
  • -
Rivit's Photo Rivit 11.01.2014

ale dlaczego tam jest 75, a nie np. 25?
Quote

Gość_21977_* 11.01.2014

Ad. 3.

exp >>= 1;
Quote

  • +
  • -
Rivit's Photo Rivit 13.01.2014

@up
a czemu nie to co cheq?

I czemu tam w tych offsetach jest 75?
Quote

  • +
  • -
DarkGL's Photo DarkGL 13.01.2014

Ponieważ takie jest przesunięcie w pamięci pola klasy które nas interesuje
Quote

  • +
  • -
Rivit's Photo Rivit 13.01.2014

a skad amxx ''wie'' ze get_pdata_int(id, 75) to odpowiada za hs? Skad sie biora te liczby?
Quote

  • +
  • -
DarkGL's Photo DarkGL 13.01.2014

W ogromnym skrócie z analizy hlds'a

http://amxx.pl/topic...-offsety-pdata/
 


a skad amxx ''wie'' ze get_pdata_int(id, 75) to odpowiada za hs?

 

Nie wie on po prostu pobiera dane z odpowiedniego miejsca w pamieci co one dla Ciebie oznaczają już go to nie obchodzi

Quote

  • +
  • -
Rivit's Photo Rivit 13.01.2014

Nie rozumiem tych offsetów kompletnie.

 

Dobra ale skąd amxx wie o który offset mi chodzi.

Przykład

/**
 * Aug offsets
 */

#if !defined _cbase_const_scout_included
#define _cbase_const_scout_included

//Linux offset difference for this class
#define CBASE_AUG_LINUXDIFF 4

#define m_bDelayFire_Aug                 59 	//(BOOL) 
#define m_flAccuracy_Aug                 62 	//(float) Default value: 0.2.
#define m_iShotsFired_Aug                64 	//(int) Amount of shots fired at once.
#define n_iShell_Aug                     78 	//(int) Model index for shells (model: "models/rshell.mdl").
#define m_usEvent_Aug                    80 	//(int) Event index as of precache_event (event: "events/scout.sc").


#endif
/**
 * Ak47 offsets
 */

#if !defined _cbase_const_scout_included
#define _cbase_const_scout_included

//Linux offset difference for this class
#define CBASE_AK47_LINUXDIFF 4

#define m_bDelayFire                     59 	//(BOOL) 
#define m_flAccuracy                     62 	//(float) Default value: 0.2.
#define m_iShotsFired                    64 	//(int) Amount of shots fired at once.
#define n_iShell                         78 	//(int) Model index for shells (model: "models/rshell.mdl").
#define m_usEvent                        80 	//(int) Event index as of precache_event (event: "events/scout.sc").


#endif

Przecież te numery offsetów są takie same a bronie inne pod wzgledem celnosci, modelu itp. Dlaczego te offsety są równe sobie (wg mnie powinno byc dla kazdej bronii inaczej)?

Quote

  • +
  • -
DarkGL's Photo DarkGL 13.01.2014

Dobra ale skąd amxx wie o który offset mi chodzi.

 

Ponieważ podajesz go ?

 

Przetłumacz sobie co wogóle znaczy offset po polsku

 

Przecież te numery offsetów są takie same a bronie inne pod wzgledem celnosci, modelu itp. Dlaczego te offsety są równe sobie (wg mnie powinno byc dla kazdej bronii inaczej)?

 

Ponieważ w silniku gry bronie te są reprezentowane przez inne klasy o różnych budowach

Quote

  • +
  • -
Rivit's Photo Rivit 13.01.2014

juz troche jasniej mam

#define m_bitsDamageType                 76 	//(int) Damagebits from last damage taken.

get_pdata_int(vid, 76)

czyli to pobierze ostatnio zadane dmg?

 

Quote

  • +
  • -
DarkGL's Photo DarkGL 13.01.2014

Typ zadanych dmg

Quote

  • +
  • -
Rivit's Photo Rivit 13.01.2014

A jeszcze pytanie.

Dlaczego nie ma np Flashbanga, auto lamy itp?

Quote
Locked