- Регистрация
- 13 Янв 2018
- Сообщения
- 394
- Симпатии
- 71
- Пол
- Мужской
Нашел такой кусок кода в плагине, который сохраняет деньги в файл при выходе игрока с сервера. Переделал под себя, не знаю в оригинале так же или нет, но заметил что в консоли пылесосит всех кто в файле и находит нужный. Если сыграло 700 человек, то там 2100 строчек.
1 строка нумерация
2 строка steam_id
3 строка значение переменной для игрока
При присоединении игрока на сервер, в консоли появляется 2100 строчек и среди них находит нужный steam_id игрока, либо заносит новые строчки. Как починить это или как лучше реализовать сохранение?
1 строка нумерация
2 строка steam_id
3 строка значение переменной для игрока
При присоединении игрока на сервер, в консоли появляется 2100 строчек и среди них находит нужный steam_id игрока, либо заносит новые строчки. Как починить это или как лучше реализовать сохранение?
C++:
new g_Coins[33] // Те же монетки :)
new configfile[200];
new g_szIp[33][32];
public plugin_init()
{
new configsdir[200];
get_configsdir(configsdir,199);
format(configfile,199,"%s/cs_bank.ini",configsdir);
}
public read_file2(id)
{
if(is_user_connected(id) && file_exists(configfile))
{
get_user_authid(id,g_szIp[id],31);
//get_user_ip(id,g_szIp[id],charsmax(g_szIp[]));
new read[32];
new filepointer = fopen(configfile,"r");
while(fgets(filepointer,read,31))
{
replace(read,31,"^n","");
if(equali(read,g_szIp[id]))
{
fgets(filepointer,read,31);
g_Coins[id] = str_to_num(read);
set_dhudmessage(0, 100, 255, -1.0, 0.3, 0, 5.0, 5.0);
show_dhudmessage(id, "Загружены монетки. ^nУ вас %d", g_Coins[id]);
emit_sound( id, CHAN_ITEM, gRespawned, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
break;
}
}
fclose(filepointer);
}
}
public save_coins(id)
{
new string[32];
format(string,31,"%d",g_Coins[id]);
new i, line;
new filepointer = fopen(configfile,"r");
if(filepointer)
{
new read[32];
while(fgets(filepointer,read,31))
{
replace(read,31,"^n","");
server_print("%d. %s",i,read);
if(equali(read,g_szIp[id]))
{
line=1;
break;
}
i++;
}
}
fclose(filepointer);
if(!line)
write_file(configfile,g_szIp[id],i);
write_file(configfile,string,i+1);
}