Prosiłbym o doklejenie tego postu do wyższego, ponieważ nie można go edytować, a szkoda. 
Gdzieś na początku dodałem:
new infochanged[33];
new userid2[33];
Potem zmodyfikowałem trochę kod, a mianowicie wygląda teraz public ZapiszExp(id) tak:
///////////////////////////////////////////////////////
public message()
{
new arg[32]
get_msg_arg_string(2, arg, 31)
if(containi(arg,"name")!=-1)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_infochanged(id) {
new newname[33],oldname[33]
get_user_info(id, "name", newname,32)
get_user_name(id,oldname,32)
if(!is_user_connected(id) || is_user_bot(id))return PLUGIN_CONTINUE
if(!equal(oldname, newname)) {
infochanged[id] = 1;
}
return PLUGIN_CONTINUE
}
///////////////////////////////////////////////////////
public ZapiszExp(id)
{
if(doswiadczenie_gracza[id] <= 250)
return;
new dane[256];
if(infochanged[id] == 0) {
get_user_name(id, nazwa_gracza, 32);
plik = nvault_open("ExpMod")
formatex(dane, 255, "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],
ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],
nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),
kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id])
nvault_set(plik, nazwa_gracza, dane)
nvault_close(plik)
} else if(infochanged[id] == 1) {
userid2[id] = get_user_userid(id);
ColorChat(id, GREEN, "%s^x01Zakaz zmiany nicku! Zostajesz wykopany z serwera.", prefix);
server_cmd("kick #%d ^"%s^"",userid2[id],"Zmieniles nick");
}
}
Moje pytanie jest takie. Co zrobiłem tutaj źle, że dopiero jak gracz zmieni nick i wejdzie ponownie na serwer dostaje kick'a z powodem "Zmieniłeś nick". Zapisuje EXP i wszystko działa jakby bez tego. Prosiłbym o naprowadzenie, bądź poprawienie tego kodu. Cały dzień się męczyłem z dodaniem do putinserver, aż w końcu pomyślałem, że zrobię to jeszcze inaczej. Po prostu zablokuję możliwość zapisu w momencie, kiedy gracz zmieni nick i go wyrzuci z serwera. Jest mały problem, to mi nie chce działać. 
W razie czego, zamieszczam .sma:
expmod.sma 71,53 KB 60 Ilość pobrań
expmod.amxx
Użytkownik Metal9712 edytował ten post 30.08.2015 02:43