L 01/07/2015 - 03:52:35: Start of error session. L 01/07/2015 - 03:52:35: Info (map "de_dust2x2") (file "addons/amxmodx/logs/error_20150107.log") L 01/07/2015 - 03:52:56: [FUN] Invalid player 10 L 01/07/2015 - 03:52:56: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx") L 01/07/2015 - 03:52:56: [AMXX] Run time error 10: native error (native "set_user_gravity") L 01/07/2015 - 03:52:56: [AMXX] [0] float.inc::operator*(Float:,_:) (line 108) L 01/07/2015 - 03:52:56: [AMXX] [1] QTM_CodMod.sma::Odrodzenie (line 345)
Zacznę od funkcji publicznej Odrodzenie.
public Odrodzenie(id)
{
set_user_gravity(id, 1.0-(grawitacja_gracza[id]*0.0004411764));//ta liczba po przecinku to wspolczynnik zmiany grawitacji
if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE))
set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b");
if(nowa_klasa_gracza[id])
UstawNowaKlase(id);
if(!klasa_gracza[id])
{
WybierzKlase(id);
return PLUGIN_CONTINUE;
}
DajBronie(id);
ZastosujAtrybuty(id);
if(poziom_gracza[id] < min_lvl)
{
client_print(id,print_chat,"[Cs-wakacje.p] Wykrylem duze problemy z balansem lvli na serwerze");
client_print(id,print_chat,"[Cs-wakacje.p] W ramach tego dostales %i LVL na start",min_lvl);
UstawDoswiadczenie(id,PobierzDoswiadczeniePoziomu(min_lvl)+1);
poziom_gracza[id] = min_lvl;
SprawdzPoziom(id);
}
if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);
return PLUGIN_CONTINUE;
}
Jedyny natyw z biblioteki fun to jest właśnie set_user_gravity. Teraz(pisząc ten temat) wpadłem na zastosowanie warunku:
if(is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id))
{
set_user_gravity(id, 1.0-(grawitacja_gracza[id]*0.0004411764));//ta liczba po przecinku to wspolczynnik zmiany grawitacji
}
Chyba powinno to rozwiązać problem z invalid player, tak?
Przejdźmy dalej- co dokładnie oznacza ten błąd:
float.inc::operator*(Float:,_:)
Wywala go w linii :
new limitzdrowie = 500;
Nie wiem co za błąd tu widzi... Czy może jednak to jest problem związany z mnożeniem przez 0 w set_user_gravity? Jeżeli tak to można by to naprawić takim kodem:
if(is_user_alive(id) && !is_user_bot(id) && !is_user_hltv(id))
{
set_user_gravity(id, 1.0-(float(grawitacja_gracza[id]+1)*0.0004411764));//ta liczba po przecinku to wspolczynnik zmiany grawitacji
}
Tu najbardziej mnie będzie dręczyła niedokładność w liczbie zmiennoprzecinkowej. ..
Nie chcę eksperymentować tego, co wyżej napisałem bezpośrednio na serwerze, żeby czegoś więcej nie schrzanić.
Załączam kod całego pluginu.
Z góry dzięki za pomoc ![]()
QTM_CodMod.sma 48,79 KB 40 Ilość pobrań
QTM_CodMod.amxx
Użytkownik pro100wHS edytował ten post 07.01.2015 13:55


Dodatki SourceMod



Temat jest zamknięty








