Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zabijanie gracza + Zarządzanie broniami...

nie chce mi sie tagowac

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
31 odpowiedzi w tym temacie

#21 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 05.07.2014 16:33

I wtedy nie będę mógł sprawdzić poprzez nazwę broni (w evencie śmierci można to sprawdzać) z czego dany gracz został zabity, bo wyświetlając tę ikonę w ten sposób jak to jest u Ciebie, nie zmienia się tylko wyświetlane sprite, ale także będzie zaliczać fraga z tej broni. Jedno kłóci się z drugim, chyba więcej kombinacji niż zabijanie przez zadawanie większych dmg.

Zalicza fraga nie z tej broni a z world'a (chyba że dodasz classname swojego swój byta (który podajesz do inflictor) do csstats za pomocą custom_weapon_add). I będziesz mógł sprawdzic za pomoca czego zabiłeś gracza!! Roboty jest tyle samo co przy zwykłym sprawdzaniu za pomocą zadawania dmg haha.gif Przykład:
Spoiler

Tylko nie mów że dużo kombinowania bo tyle samo co przy normalnym łapaniu w dodatku użyłem classname tylko i wyłącznie dlatego że powiedziałeś że chcesz nazwę broni haha.gif

A co w przypadku gdy nie chce, aby łapało zabicia za pomocą c4? Bo "Ham_Killed" wykonuje się także w tym momencie i szczerze nie sprawdzałem co i kto jest wtedy dokładnie zabójcą i bytem zabijającym.

Ogólnie może podam konkretny przykład.
1. Chcę znać czas, zabójcę i broń z jakiej ktoś został zabity, ale oczywiście wszystko w ramach silnika, nie poprzez jakieś dodatkowe zmienne globalne. Broń najlepiej w postaci jakiegoś id, czyli skoro standardowe są do 30, to od 31 zaczynają się te niestandardowe, wszystko po to, żeby móc potem tę broń w prosty sposób identyfikować w jakimś zadaniu na zabicia z różnych broni, np. poprzez wysłanie jakiegoś forwardu.
2. Mam niestandardową broń, powiedzmy bazookę, która nie zabija zawsze przy trafieniu, ale ma powiedzmy 1/5 szansy na to.
3. Chcę, aby sprite było inne niż world, czyli powiedzmy sprite he.
4. Przy trafieniu i zadaniu obrażeń kod wyglądał by mniej więcej tak
entity_set_string(inflictor, EV_SZ_classname, "bazooka");
entity_set_edict(inflictor, EV_ENT_owner, attacker);
ExecuteHam(Ham_TakeDamage, victim, inflictor, attacker, fDamage, bits); // lub z B
i wtedy po zabiciu gracza w evencie śmierci "DeathMsg" mam wszystko to czego potrzebuję, jedynie do ranku się nie nalicza, ale być może po dodaniu paru linijek z Twojej funkcji rozwiązało by sprawę. Potem żeby zmieniać sprite, wystarczy złapać
register_message(get_user_msgid("DeathMsg"), "MessageDeathMsg");
i tam podmieniać nazwę sprite, sprawdzając czy otrzymana nazwa nie jest bazooką. Ogólnie wydaję mi się, że to miejsce jest najbardziej odpowiednie do podmian wyświetlanej wiadomości, bo tutaj tylko podmieniamy to co chcemy, a nie wysyłamy nową wiadomość o zabiciu kogoś. Ale przejdźmy do sedna, jak teraz zabić kogoś natychmiast po trafieniu? Od razu piszę, że nie twierdzę, aby to nie było możliwe Twoim sposobem, ale raczej bez jakiejś edycji się nie obędzie. Przypominam jeszcze raz, chodzi o to, aby funkcja była jak najbardziej uniwersalna, bo wydaję mi się, że aktualnie nie jest.
  • +
  • -
  • 0
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#22 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 05.07.2014 19:35

A co w przypadku gdy nie chce, aby łapało zabicia za pomocą c4? Bo "Ham_Killed" wykonuje się także w tym momencie i szczerze nie sprawdzałem co i kto jest wtedy dokładnie zabójcą i bytem zabijającym.

Wyznacz własne właściwości bytu zabijającego
 

Chcę znać czas, zabójcę i broń z jakiej ktoś został zabity

entity_set_string(inflictor, EV_SZ_classname, "bazooka");
entity_set_edict(inflictor, EV_ENT_owner, attacker);
ExecuteHam(Ham_TakeDamage, victim, inflictor, attacker, fDamage, bits); // lub z B
Zamieniasz na to:
const CSW_BAZOOKA = 3827904 //Przykładowe id bazooki jakie sobie wybrałem
const m_iId = 43
set_pdata_int(inflictor,m_iId,CSW_BAZOOKA,4)
set_pev(inflictor,pev_owner,attacker)
KillPlayer(victim,inflictor,attacker,CSW_HEGRENADE,HIT_GENERIC,0,1<24)

//Następnie Rejestrujemy event
RegisterHam(Ham_Killed, "player", "Killed", 1)
//Teraz rozpoznanie zabójstwa z bazooki

public Killed(id,attacker,shouldgib)
{
	new inflictor = pev(id,pev_dmg_inflictor)
	
	if(GetWeaponId(inflictor) == CSW_BAZOOKA)
	{
		//Jee zabiliśmy gracza z bazooki xD
		//GetWeaponId to funkcja z tego tematu xD
		//Pobiera dane z offsetu m_iId = 43
		//I robi to samo co funkcja cs_get_weapon_id
	}
}
Przykład z Ham_Killed ale jeśli chcesz to spokojnie możesz użyć tego w DeathMsg:
const CSW_BAZOOKA = 3827904 //Przykładowe id bazooki jakie sobie wybrałem
const m_iId = 43
set_pdata_int(inflictor,m_iId,CSW_BAZOOKA,4)
set_pev(inflictor,pev_owner,attacker)
KillPlayer(victim,inflictor,attacker,CSW_HEGRENADE,HIT_GENERIC,0,1<24)

//Następnie Rejestrujemy event
register_message(get_user_msgid("DeathMsg"), "MessageDeathMsg")
//Teraz rozpoznanie zabójstwa z bazooki

public MessageDeathMsg(Msgid,Msgdest,id)
{
	new ofiara = get_msg_arg_int(2)
	new inflictor = pev(ofiara,pev_dmg_inflictor)
	
	if(GetWeaponId(inflictor) == CSW_BAZOOKA)
	{
		//Jee zabiliśmy gracza z bazooki xD
		//GetWeaponId to funkcja z tego tematu xD
		//Pobiera dane z offsetu m_iId = 43
		//I robi to samo co funkcja cs_get_weapon_id
	}
}
Chyba o to ci chodziło. Nwm słabo rozumuje innych ludzi kwasny.gif
 

czyli skoro standardowe są do 30,

Standardowe są do 32 bo jeszcze tam są armory:
#define CSW_VEST		31
#define CSW_VESTHELM	32

to od 31 zaczynają się te niestandardowe

Co masz na myśli mówiąc niestandardowe??
 

wszystko po to, żeby móc potem tę broń w prosty sposób identyfikować w jakimś zadaniu na zabicia z różnych broni, np. poprzez wysłanie jakiegoś forwardu.

Alez to jest jeszcze łatwiejsze nawet głupiego stringa porównywac nie musisz
 

jedynie do ranku się nie nalicza, ale być może po dodaniu paru linijek z Twojej funkcji rozwiązało by sprawę.

Niestety nie. U mnie fragi nalicza gdyż zabijam za pomocą Ham_Killed.
 

Potem żeby zmieniać sprite, wystarczy złapać

Właśnie musisz łapać event tylko dlatego iż chcesz broń porównać??

Hmm wytłumaczę ci zasadniczą wadę twojego sposobu. W DeathMsg nie masz dostępu do id bytu zabijającego. Masz tylko jego classname i żeby dostać id musiał byś wyszukać bytu po classname a ja po prostu używam tego czego cs używa do zabijania tzn. cs nie sprawdza nazwy spirite aby wiedziec z jakiej broni został gracz zabity. On pobiera wartośc z offsetu który skrywa się pod pev_dmg_inflictor a w nim jest id bytu zabijającego i ja robie to samo ;D
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#23 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 678
Wszechmogący

  • Postów:1258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 05.07.2014 20:05

Takie pytanie na marginesie - bo jestem ciekawy, niestety przerwę dyskusję.

 

Czemu akurat nie można ustawić bytu zabijającego jako pociąg?


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#24 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 05.07.2014 20:21

Czemu akurat nie można ustawić bytu zabijającego jako pociąg?

Byt zabijający się da. Nie da się zrobić ikonki pociągu bo w założeniu funkcji nie było udostępnianie takiej opcji gdyż nie widziałem sensu przerabiać całą funkcję aby ktos mógł pociąg zobaczyć heh. Ten pociąg jest całkowicie oddalony od tematu (odjeżdża Ciuf ciuf ciuf...) haha.gif Możesz sobie osobiście go zrobić. Chyba że chce ktoś to mogę przerobić tą funkcję aby przyjmowała stringa lub zamiast pustego miejsca w id broniach (mam na myśli id numer 2 czyli id tarczy lecz ona nie posiada swojej ikonki sad.png )
  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#25 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 05.07.2014 21:42

Standardowe są do 32 bo jeszcze tam są armory:

Ale tymi przecież się nie zabija, dlatego też, standardowe są do 30, a od 31 można sobie numerować niestandardowe, co także zresztą zawsze robię. Koniec poprzedniego zdania, jest także odpowiedzią o jakie niestandardowe bronie chodzi.
 

Niestety nie. U mnie fragi nalicza gdyż zabijam za pomocą Ham_Killed.

A zalicza do jakiej broni? Jak zabiję z tej bazooki to zaliczy mi jakbym zabił z he? Bo coś mi się wydaję, że jest to bardzo możliwe, a wtedy jest to raczej efekt niepożądany.
 

Właśnie musisz łapać event tylko dlatego iż chcesz broń porównać??

Ten event jest tylko do podmiany sprite. Po prostu nie jest blokowana i wysyłana żadna wiadomość, tylko wysłany event śmierci ma podmianę nazwy sprite, a robi się to tak
public MessageDeathMsg(msgID, msgDest, msgEnt) {
	static szTmp[32], szReplace[32];
	get_msg_arg_string(4, szTmp, 31);

	if(TrieGetString(gCustomWeapons[1], szTmp, szReplace, 31)) {
		set_msg_arg_string(4, szReplace);
	}
}

Hmm wytłumaczę ci zasadniczą wadę twojego sposobu. W DeathMsg nie masz dostępu do id bytu zabijającego. Masz tylko jego classname i żeby dostać id musiał byś wyszukać bytu po classname a ja po prostu używam tego czego cs używa do zabijania tzn. cs nie sprawdza nazwy spirite aby wiedziec z jakiej broni został gracz zabity. On pobiera wartośc z offsetu który skrywa się pod pev_dmg_inflictor a w nim jest id bytu zabijającego i ja robie to samo ;D

Chcąc mieć jakieś niestandardowe bronie i móc podmieniać sprite tych broni, trzeba mieć jakąś ich listę i mając chociażby utworzone drzewo, w bardzo łatwy sposób sprawdza się te id broni
new weaponname[32];
read_data(4, weaponname, 31);

new weapon;
TrieGetCell(gCustomWeapons[0], weaponname, weapon);
Wydaję mi się, że ten Twój sposób ciężej było by połączyć z wykrywaniem wszystkich śmierci i generalnie myślałem, że to też w miarę jasno pisałem, bo co jeśli w jednym miejscu chce wykrywać także zabójstwa z innych broni? Może, żeby było bardziej jasne, to oprócz tych punktów, co wypisałem, dodatkowo chcę wiedzieć, kiedy gracz zginął z normalnej broni, dokładnie w tym samym miejscu (w tej samej funkcji), gdy gracz zginie z niestandardowej broni, czyli powiedzmy w "Ham_Killed" chcę wysyłać forward z informacjami: ofiara, zabójca, broń, hs (też, ale z tym akurat nie ma problemu) i jeśli zabiję powiedzmy z usp, to będę miał id usp, a jeśli zabiję z bazooki, to będę miał id 31 lub inne. Po co tak? Wtedy tak jak wspomniałem, sprawdzenie czy gracz zabił z usp, czy z bazooki ograniczy się tylko do jednego warunku z jednym porównaniem.


Ogólnie, gdyby "Ham_Killed" przyjmował dokładnie takie same parametry jak przy zadawaniu obrażeń, wtedy nie było by żadnego problemu łączyć to wszystko, a tak są problemy z uniwersalnością.
  • +
  • -
  • 0
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#26 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 05.07.2014 23:02

A zalicza do jakiej broni?

Do classname inflictora czyli przy bazooce to bedzie "bazooka" jesli dodasz bazooke do csstats za pomocą custom_weapon_add inaczej będzie zliczana do fragów ale żadnej broni nie przydzieli bo jak miało by przydzielić jeśli broni nie rozpoznaje. Nie będzie to HE!!
 

Chcąc mieć jakieś niestandardowe bronie i móc podmieniać sprite tych broni, trzeba mieć jakąś ich listę i mając chociażby utworzone drzewo, w bardzo łatwy sposób sprawdza się te id broni

Nie zrozumiałeś mnie. Nie mam na myśli id takiego jak np. CSW_* że pare bytów na mapie może mieć to id lecz unikalne id danego bytu.
 

dodatkowo, jeśli w konsoli wyświetla się, że gracz zabił niby z he, gdzie tak naprawdę była to ta bazooka

Info z DeathMsg'a jeśli podmienisz swoim sposobem sprite to też takie będziesz miał kwasny.gif
 

Wydaję mi się, że ten Twój sposób ciężej było by połączyć z wykrywaniem wszystkich śmierci i generalnie myślałem, że to też w miarę jasno pisałem, bo co jeśli w jednym miejscu chce wykrywać także zabójstwa z innych broni?

Nic łatwiejszego haha.gif
 

Ogólnie, gdyby "Ham_Killed" przyjmował dokładnie takie same parametry jak przy zadawaniu obrażeń, wtedy nie było by żadnego problemu, łączyć to wszystko, a tak są problemy z uniwersalnością.

Samemu musiszs te argumenty wychwycić. Zauważ że cs sam w sobie nie ma z tym problemów a korzysta tylko z paru offsetów.

Przykładowe wychwycenie standardowych i niestandardowych broni:
RegisterHam(Ham_Killed, "player", "Killed")

public Killed(id,attacker,shouldgib)
{
	if(!(0 < attacker < 33))	//Sam się zabił
	
	new inf = pev(id,pev_dmg_inflictor)
	new weapon
	if(inf == attacker)
	{
		weapon = GetUserWeapon(id)
		//Gracza zabiła standardowa broń
	}
	else
	{
		//Najpierw sprawdźmy czy to HE
		const m_bTruOnHeDamage = 197
		if(get_pdata_int(id,m_bTruOnHeDamage,5))	weapon = CSW_HEGRENADE // Także standardowa broń
		
		if(pev_valid(inf) == 2)
		{
			const m_bIsC4 = 385
			const m_iId = 43
			if(get_pdata_int(inf,m_bIsC4,4))	weapon = CSW_C4 // Wykrywanie C4
			else	weapon = get_pdata_int(inf,m_iId,4) // Wykrywanie broni niestandardowej
		}
	}
	Twoja_Funkcja(id,attacker,weapon)
}

  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#27 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.07.2014 00:25

Nie zrozumiałeś mnie. Nie mam na myśli id takiego jak np. CSW_* że pare bytów na mapie może mieć to id lecz unikalne id danego bytu.

Nie wiem o co tutaj chodzi, przecież mając niestandardowe bronie nie ważne jest id bytu unikalnego (id, które zwraca utworzenie bytu), tylko id które określa, jaką bronią jest ten byt.

Info z DeathMsg'a jeśli podmienisz swoim sposobem sprite to też takie będziesz miał kwasny.gif

Skoro zabijam gracza Twoją funkcją, to przecież tam jest już sprite ustawione na takie jaką broń się wybierze, to nie rozumiem.

Generalnie teraz już to trochę lepiej wygląda, ale widzisz, jeśli obrażenia będą zadawane w ten sposób
entity_set_string(inflictor, EV_SZ_classname, "bazooka");
entity_set_edict(inflictor, EV_ENT_owner, attacker);
ExecuteHam(Ham_TakeDamage, victim, inflictor, attacker, fDamage, bits); // lub z B
bo tak jak pisałem, bazooka miała by mieć tylko 1/x szansy na zabicie, czyli po zetknięciu zabija, albo zadaję obrażenia, to Twoja funkcja się nie nada, najpierw przy zadawaniu dmg także trzeba by ustawić te wszystkie wartości na offsetach i wtedy coś by z tego było, tylko teraz jeszcze sprawdzić to w praktyce ;]
  • +
  • -
  • 0
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#28 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 06.07.2014 01:24

*
Popularny

bo tak jak pisałem, bazooka miała by mieć tylko 1/x szansy na zabicie, czyli po zetknięciu zabija, albo zadaję obrażenia, to Twoja funkcja się nie nada, najpierw przy zadawaniu dmg także trzeba by ustawić te wszystkie wartości na offsetach i wtedy coś by z tego było, tylko teraz jeszcze sprawdzić to w praktyce ;]

To tak samo jak bym użył twojego classname "bazooka" tzn. nie korzystał z offsetów a np. na classname operował też by działało. Tzn. coś takiego:
entity_set_string(inflictor, EV_SZ_classname, "bazooka");
entity_set_edict(inflictor, EV_ENT_owner, attacker);
KillPlayer(victim,inflictor,attacker,CSW_HEGRENADE,HIT_GENERIC,0,1<24)

//Następnie Rejestrujemy event
RegisterHam(Ham_Killed, "player", "Killed", 1)
//Teraz rozpoznanie zabójstwa z bazooki

public Killed(id,attacker,shouldgib)
{
	new inflictor = pev(id,pev_dmg_inflictor)
	
	new classname[32]
	entity_get_string(inflictor, EV_SZ_classname, classname ,31);
	//To tak samo jak byś pobrał 4 argument z DeathMsg ;D
	//Tylko osobiście wolę offsety xD
	//Ale tak też się da xD
	//Przesyłanie bytu daje mega możliwości
	//A samo classname nie zawsze wystarcza
}

Nie wiem o co tutaj chodzi, przecież mając niestandardowe bronie nie ważne jest id bytu unikalnego (id, które zwraca utworzenie bytu), tylko id które określa, jaką bronią jest ten byt.

To tak jak przesyłanie stringa a przesyłanie wskaźnika na stringa haha.gif W dodatku czasem jedna wartośc nie wystarczy a byt może ich mase przetrzymywać haha.gif


I przy okazji zrobiłem ciufcie haha.gif Piękny efekt aż przejechała mi po głowie:TrackTrain.jpg

Funkcja:
Spoiler

Małe poprawki dodane + dodatkowy offset by bardziej ta śmierć odzwierciedlała śmierć z cs'a haha.gif
Jeśli ustawimy weapon na 2 to wyjdzie nam ikonka ciufci. Jeszcze jak by ktoś mógł to podmienić z funkcją w pierwszym poście był bym wdzięczny
  • +
  • -
  • 5
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#29 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 17.07.2014 20:56


ExecuteHamB(Ham_Killed,id,attacker,shouldgib)

 


poprostu zabija a zatem żaden inny plugin modyfikujący dmg nie przerwie procesu zabijania gracza

 

nie jestem benio zeby instalować cs'a ale powiedz mi co będzie jak sobie zarejestruje Ham_Killed w pre i zwróce supercede ?


  • +
  • -
  • 2
Manual ponad wszystko, konsola ponad manual :D :&

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) :D

#30 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 17.07.2014 21:32

nie jestem benio zeby instalować cs'a ale powiedz mi co będzie jak sobie zarejestruje Ham_Killed w pre i zwróce supercede ?

Będzie trach i nie zabije gracza a pokaże info o zabiciu. Lecz nie po to daję tą funkcję żeby jej działanie ją blokować (gdyż można sprawdzić przed jej wykonaniem czy jest sens kogoś zabijać) w każdym możliwym razie... Po to jest argument inflictor w niej by rozpoznać byt zabijający a jeśli go znamy to możemy rozpoznać czy zabija nas ta funkcja czy nie a jeśli zabija to łatwo można zablokowac także info. Pewna kompilacja (lecz da się z niej wyjść w prosty sposócool.png ale takie korzystanie z tej funkcji mija się z jej celem. Tak to jest jej wada, jeśli nie korzysta się z sprawdzania inflictor'a i zwraca supercede to będzie działać niepoprawnie, naszczęście wystarczy jeden warunek w funkcji i wszystko naprawione. Dzięki że powiedziałeś bo bym nie zauważył ;D
  • +
  • -
  • -1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#31 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1339
Godlike

  • Postów:3556
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 17.07.2014 21:52

ehh benio ma racje ze z d*py sie wziales w ST

 

sens blokowania jest taki że mogę mieć klasę odporną na granaty 1/1 itp.

 


Po to jest argument inflictor w niej by rozpoznać byt zabijający a jeśli go znamy to możemy rozpoznać czy zabija nas ta funkcja czy nie

 

bzdura

czyli jak wywoluje twoja funkcje to jeszcze mam zapisać gdzies tego inflictora zeby sprawdzac czy to nie on?

 

Wystarczy zmienic ExecuteHamB na ExecuteHam i już nie bedzie można tego powstrzymać w sposób który podałem i wszystko będzie ok (nie wiedziales/ zapomniales?) piszesz kod a gdy ktoś mówi że jest on błędny to zamiast to poprawić to mówisz że sie nie da i tak ma być (tak na prawde nie wiesz jak to naprawić)


  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

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) :D

#32 BlackPerfum

    Pseudo interakcja??

  • Autor tematu
  • Power User

Reputacja: 453
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 17.07.2014 22:38

czyli jak wywoluje twoja funkcje to jeszcze mam zapisać gdzies tego inflictora zeby sprawdzac czy to nie on?

Nie... Inflictor się sam zapisuje do pev_inflictor wystarczy go pobrać przy złapaniu eventu
 

Wystarczy zmienic ExecuteHamB na ExecuteHam i już nie bedzie można tego powstrzymać w sposób który podałem i wszystko będzie ok (nie wiedziales/ zapomniales?) piszesz kod a gdy ktoś mówi że jest on błędny to zamiast to poprawić to mówisz że sie nie da i tak ma być (tak na prawde nie wiesz jak to naprawić)

Wtedy nie złapiesz zabicia za pomocą Ham_Killed... Przez co ta funkcja nie ma najmniejszego sensu... Ona jest po to by można było rozróżniać byt jakim się zabiło gracza np. jakaś broń niestandardowa jak mina/kusza. Jeśli użyje ExecuteHam funkcja straci sens a wystarczy po jej użyciu sprawdzić czy gracz żyje
BlackPerfum (17.07.2014 22:43):
Funkcja poprawiona

Użytkownik BlackPerfum edytował ten post 17.07.2014 22:40

  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika





Również z jednym lub większą ilością słów kluczowych: nie chce mi sie tagowac

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych