Obciążenie serwera (Segmentation Fault)
BartoszOsw
12.03.2014
BartoszOsw
15.03.2014
Nie mogę edytować wcześniejszego postu. Dodaje tutaj logi z konsoli podczas crashu
Seba
15.03.2014
Bo ja zawsze ; średniki usuwam i włączam wszystkie moduły.
Kompletna glupota, laduja sie nawet gdy nie sa potrzebne.
dredek
17.03.2014
Aktualizacja HLDS na najnowszą wersje to samo amxmodmenu na 1.8.2 oraz dproto...
To powinno pomóc bynajmniej mi pomogło :_)
Seba
17.03.2014
To powinno pomóc bynajmniej mi pomogło :_)
Skoro to Ci nie pomogło to czemu polecasz?
BartoszOsw
17.03.2014
Aktualizacja HLDS na najnowszą wersje to samo amxmodmenu na 1.8.2 oraz dproto...
To powinno pomóc bynajmniej mi pomogło :_)
Już dawno to zrobiłem i nic dalej robi się tak jak robiło.
Aemiksowy
18.03.2014
Nowy HLDS raczej pogorszyłby sprawę, ponieważ wiele jednak rzeczy jest niekompatybilnych lub wymaga napisania od nowa.
W niedzielę doszedłem do zaskakującego odkrycia na serwerze COD. Jeżeli mamy perk, który daje graczowi nieśmiertelność (set_user_godmode) i tym samym jakaś klasa wybucha wokół siebie ludzi, którzy mają właśnie włączoną nieśmiertelność, wywala błąd FATAL ERROR (shutting down): MSG_ONE or MSG_ONE_UNRELIABLE with no target entity. Rozwiązaniem tego, było w tym kodze:
public DeathMsg(){ new id = read_data(2); if(!ma_klase[id]) return PLUGIN_CONTINUE; new Float:fOrigin[3]; entity_get_vector(id, EV_VEC_origin, fOrigin); new iOrigin[3]; for(new i=0;i<=2;i++) iOrigin[i] = floatround(fOrigin[i]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); write_byte(20); write_byte(0); message_end(); new entlist[33]; new numfound = find_sphere_class(id, "player", 150.0 , entlist, 32); for (new i=0; i<=numfound; i++){ new pid = entlist[i]; if (is_user_alive(pid) && get_user_team(id) != get_user_team(pid)) cod_inflict_damage(id, pid, float(get_user_health(pid)), 0.0); } return PLUGIN_CONTINUE; }
zmienić if (is_user_alive(pid) && get_user_team(id) != get_user_team(pid)) na if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || get_user_godmode(pid))
Wniosek? Nawet taka pierdoła mogła spowodować crash serwera i trzeba uważnie sprawdzić kod: dynamitu, miny i rakiety, a także inne perki, bo być może one ze sobą kolidują i powstaje przeciążenie serwera. Innego racjonalnego wytłumaczenia nie ma.
Użytkownik Aemiksowy edytował ten post 18.03.2014 12:20
Seba
18.03.2014
Wniosek? Nawet taka pierdoła mogła spowodować crash serwera i trzeba uważnie sprawdzić kod: dynamitu, miny i rakiety, a także inne perki, bo być może one ze sobą kolidują i powstaje przeciążenie serwera. Innego racjonalnego wytłumaczenia nie ma.
Tylko ze nie o tego typu bledzie rozmawiamy w tym temacie.
Aemiksowy
19.03.2014
To prawda, ale doszedłem do meritum, że dynamity, miny i rakiety mogą powodować przeciążenie, co w konsekwencji doprowadzi do segmentation fault. Temu należy się przyjrzeć.
1337
22.03.2014
Pomysłów dostałeś już tysiąc, ale skoro nie możesz poświecić dnia by wszystko zdiagnozować to cierp i trać graczy.
Sebul już Ci pisal ja Ci pisałem nie wiem po co dalej chcesz drążyć temat niczego nie sprawdzasz, chcesz same nowinki co to może być, jakbyś czekał aż samo się naprawi ...
Seba
25.03.2014
Zadanie ktore masz przed soba jest dosc trudne do rozwiazania i wymaga mocno analitycznego myslenia. Wszytskie pady serwera sa ze soba powiazane, wiec musisz sie dokladnie przygladac serwerowi i przeanalizowac co maja ze soba wspolnego. Musisz miec na uwadze ze crashe moze powodowac jeden plugin badz dziesiec.