[ROZWIĄZANE] [MySQL] Thread worker was una...
karololo
13.03.2012
Witam,
Gdy w publicu: public client_disconnect() umieszczę zapytanie dodające do bazy jakieś zmienne to otrzymuje taki błąd:
Problem znika, kiedy zamiast public client_disconnect() umieszczę zwykły public, public test() i będzie on wykonywany bo napisaniu /test na say'u. Dlaczego tak jest? Nie można wykonać zapytania do bazy podczas client_disconnect?
Gdy w publicu: public client_disconnect() umieszczę zapytanie dodające do bazy jakieś zmienne to otrzymuje taki błąd:
[MySQL] Thread worker was unable to start
Problem znika, kiedy zamiast public client_disconnect() umieszczę zwykły public, public test() i będzie on wykonywany bo napisaniu /test na say'u. Dlaczego tak jest? Nie można wykonać zapytania do bazy podczas client_disconnect?
DarkGL
13.03.2012
spróbuj zainstalować amxx 1.8.2
zbyt wiele połączeń może być wykonywanych w czasie łączenia się gracza ( amxbans mocno obciąża )
zbyt wiele połączeń może być wykonywanych w czasie łączenia się gracza ( amxbans mocno obciąża )
karololo
13.03.2012
Połączeń jest mało. Podkreślam, że gdy wykonam tą funkcję np. podczas napisania na say'u /test to działa i obywa się bez błędów, a gdy dodam to w client_disconnect wtedy otrzymuje błąd. Dla zobrazowania:
Użytkownik Poprostu Maniac edytował ten post 13.03.2012 17:20
public plugin_init() {
register_clcmd("say /test", "test");
}
public client_disconnect(id) {
//w tym public'u nie działa, wysypuje błędy
}
public test(id) {
//działa bez błędów
}
Użytkownik Poprostu Maniac edytował ten post 13.03.2012 17:20
speedkill
13.03.2012
To dziwne ponieważ ja tak nie mam, możesz dać kod z client_disconnect(id) + zapis danych, wtedy łatwiej będzie zobaczyć o co chodzi 
Ps.oraz tak jak Dark napisał spróbuj zainstalować amxx 1.8.2

Ps.oraz tak jak Dark napisał spróbuj zainstalować amxx 1.8.2
karololo
13.03.2012
public client_disconnect(id) {
new authid[36]
get_user_authid(id,authid,35)
new Data[1]
Data[0] = id
format(g_Query,511,"SELECT * FROM `x` WHERE steamid='%s'",authid)
SQL_ThreadQuery(g_SqlHandle,"x",g_Query,Data,1)
return PLUGIN_HANDLED
}
public x(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
new id
id = Data[0]
new authid[36]
new name[32]
get_user_authid(id,authid,35)
get_user_name(id, name, 31)
format(g_Query,511,"UPDATE `x` SET x = 1 WHERE steamid='%s'", authid)
SQL_ThreadQuery(g_SqlHandle,"IgnoreHandle",g_Query)
return PLUGIN_HANDLED
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
return PLUGIN_HANDLED
}
na pewno ma to coś wspólnego z tym, że public wykonuje się podczas odłączenia się gracza bo w normalnym publicu działa bez zarzutów.
Użytkownik Poprostu Maniac edytował ten post 13.03.2012 17:49
sebul
13.03.2012
Przy rozłączeniu się gracza chyba nie daje się zapytania "SELECT", bo po co?
speedkill
13.03.2012
W disconnect nie wykonuj SELECT, tylko UPDATE, wpis z nickiem gracza ( jeśli nie istnieje robisz jak wbija na serwer. )
Ps.Dlatego miałeś błędy
Ps.Dlatego miałeś błędy

karololo
13.03.2012
Jak myślicie pomogło?
Pewnie, że tak! Z przyzwyczajenia robiłem tak do każdego publicu nawet do tego w którym nic nie robiłem z wybranymi wynikami. Także, dziękuje bardzo

speedkill
13.03.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL