Message EVENTY - Błędy
dram
21.08.2011
FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity
FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity
Mam taki błąd w konsoli i potem następuje crash - Niestety nie wiem który to plugin powoduje, dlatego domyślam się ,że
próbóje wywołać EVENT np. na graczu którego nie ma, bądź na ent który nie istnieje.
Na serwerze jest sporo pluginów i troche było to by nie wporządku wyłącząć każdy plugin i patrzeć czy to on. Dlatego rozumiem ,że wystarczyłoby przejrzeć .sma i przed wysyłaniem "eventu" sprawdzać czy gracz/ent istnieje.
if(pev_valid(id) || is_user_alive(id)){ message_begin(MSG_ONE, gmsgShake, {0,0,0}, id) write_short( (1<<12) * 10 ) write_short( (1<<12) * 3 ) write_short( (1<<12) * 14) message_end() }
Takie coś wystarczy? Czy np. w przypadku wiadomości MSG_ALL też dobrze byłoby sprawdzać? Lub może w którejś wiadomości jakiś parametr jest błędny?
Użytkownik dram edytował ten post 21.08.2011 20:43
R3X
21.08.2011
if(is_user_alive(id)){ message_begin(MSG_ONE, gmsgShake, {0,0,0}, id) write_short( (1<<12) * 10 ) write_short( (1<<12) * 3 ) write_short( (1<<12) * 14) message_end() }
jak z pev_valid to nie || tylko &&
dram
21.08.2011
Czy w przypadku gdy wiadomość wysyłana jest do wszystkich graczy też należy się zabezpieczyć?
btw. ten błąd od tych właśnie wiadomości pochodzi?
Użytkownik dram edytował ten post 21.08.2011 22:23
btw. ten błąd od tych właśnie wiadomości pochodzi?
Użytkownik dram edytował ten post 21.08.2011 22:23
R3X
21.08.2011
dla msg_all nie ma znaczenia parametr id, tak jak we wszystkich innych wiadomościach musisz pilnować typu i ilości parametrów write_*
dram
21.08.2011
Tak ale ten błąd z konsoli pochodzi w przypadku gdy
"message_begin" zostało wywołane do d*py tzn.
ENT który jest w wiadomości nie istnieje bądź go nie ma tak?
p.s
I z tego co widze są praktycznie tu dwa pod rząd to oznacza ,że message_begin wykonują się w małych odstępach czasowych?(pomoże mi to w szukaniu który plugin to robi:))
Użytkownik dram edytował ten post 21.08.2011 22:30
"message_begin" zostało wywołane do d*py tzn.
ENT który jest w wiadomości nie istnieje bądź go nie ma tak?
p.s
FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity
FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity
I z tego co widze są praktycznie tu dwa pod rząd to oznacza ,że message_begin wykonują się w małych odstępach czasowych?(pomoże mi to w szukaniu który plugin to robi:))
Użytkownik dram edytował ten post 21.08.2011 22:30
R3X
21.08.2011
ten błąd pojawia się tylko w związku z message_begin()
to z shutdownem to raczej nie ma znaczenia, jak poszła druga wiadomość to już serwer szedł spać; a czasu nie można dokładnie określić na podstawie takich logów
message_begin(MSG_ONE, gmsgShake, {0,0,0}, id)kiedy id nie jest bytem, a często graczem
to z shutdownem to raczej nie ma znaczenia, jak poszła druga wiadomość to już serwer szedł spać; a czasu nie można dokładnie określić na podstawie takich logów
R3X
21.08.2011
is_connected() wystarczy
sprawdzę czy FM_ łapie amxxowe wiadomości, to bardzo ułatwi debugging
sprawdzę czy FM_ łapie amxxowe wiadomości, to bardzo ułatwi debugging
dram
21.08.2011
Mógłbyś mi spreparować kodzik? Tak się składa że posiadam orpheu na serwerze 
p.s Linux 64 bit
Te crashe są irytujące bo AMXX nie wywala który plugin crashuje a sprawdzać każdy z osobna to nie łatwe wyzwanie zwłaszcza że on występuje w różnych odstępach czasowych.
Użytkownik dram edytował ten post 21.08.2011 23:09

p.s Linux 64 bit
Te crashe są irytujące bo AMXX nie wywala który plugin crashuje a sprawdzać każdy z osobna to nie łatwe wyzwanie zwłaszcza że on występuje w różnych odstępach czasowych.
Użytkownik dram edytował ten post 21.08.2011 23:09
G[o]Q
22.08.2011
a jak zachowuje sie is_user_alive/connected dla id=0
jest bląd/nic sie nie dzieje czy jest operacja na "cliencie" servera( tak jak przy get_user_name(0,buff,123))

jest bląd/nic sie nie dzieje czy jest operacja na "cliencie" servera( tak jak przy get_user_name(0,buff,123))

R3X
22.08.2011
gracz numer 0 nie jest ani podłączony ani żywy, więc te funkcje zwracają 0, serwer nie ma żadnego klienta ani bytu; to z name i ip to są czyste haxy