Всем привет. Подскажите как записать в txt координаты местоположения игрока.
не знаю как оформить
format(name, x,y,z)
[N][E][M][E][C] писал(а): Самое интересное, с контры делают помойку!!! Ледяной шар и т.д. От сюда я считаю кс и пропала.
Модераторы: Subb98, liFe iS GoOD
fprintf(pfile, "%s %f %f %f", name, forigin[0], forigin[1], forigin[2]);
#include <amxmodx>
#include <amxmisc>
#include <fun>
new Origin[33][3]
public plugin_init()
{
register_plugin("z", "z", "z");
register_clcmd("say /save","position")
}
public position( id )
{
new file;
file = fopen("addons/amxmodx/configs/position.txt", "a+");
if(!file)
return;
Origin[id][0] = 0
Origin[id][1] = 0
Origin[id][2] = 0
new player_name[32];
get_user_origin(id,Origin[id],0)
get_user_name(id, player_name, 31) ;
fprintf(file, "%s %f %f %f", player_name, forigin[0], forigin[1], forigin[2]);
}
fprintf(file, "%s %d %d %d", player_name, Origin[0], Origin[1], Origin[2]);
fprintf(file, "%s %f %f %f", player_name, forigin[0], forigin[1], forigin[2]);
fprintf(file, "%s %f %f %f", player_name, Origin[id][0], Origin[id][1], Origin[id][2]);
Subb98 писал(а):
- Код: Выделить всё
fprintf(file, "%s %f %f %f", player_name, forigin[0], forigin[1], forigin[2]);
>>
- Код: Выделить всё
fprintf(file, "%s %f %f %f", player_name, Origin[id][0], Origin[id][1], Origin[id][2]);
П.с.: для чего было делать Origin глобальной переменной, мне решительно неясно.
#include <amxmodx>
#include <amxmisc>
#include <fun>
new Origin[33][3]
new q[33] = {0, ...};
public plugin_init()
{
register_plugin("z", "z", "z");
}
public client_disconnect( id )
{
new file;
new pos;
new bool:client_is_found;
new player_name[32], buffer[64];
new fplayer_name[32], fwdata[64];
file = fopen("addons/amxmodx/configs/position.txt", "a+");
if(!file)
return;
get_user_name(id, player_name,charsmax(player_name));
get_user_origin(id,Origin[id],0);
format(fwdata, charsmax(fwdata), "%s %d %d %d", player_name, Origin[id][0], Origin[id][1], Origin[id][2]);
while(!feof(file))
{
pos++;
buffer[0] = '^0';
fgets(file, buffer, charsmax(buffer));
if(strlen(buffer) < 4)
continue;
if(strcmp(player_name, fplayer_name) == 0)
{
client_is_found = true;
write_file("addons/amxmodx/configs/position.txt", "", pos - 1);
write_file("addons/amxmodx/configs/position.txt", fwdata, pos - 1);
break;
}
}
if(!client_is_found)
write_file("addons/amxmodx/configs/position.txt", fwdata);
fclose(file);
client_is_found = false;
q[id] = 0;
}
public client_putinserver(id)
{
Origin[id][0] = 0
Origin[id][1] = 0
Origin[id][2] = 0
if(q[id])
return;
new file;
file = fopen("addons/amxmodx/configs/position.txt", "rt");
if(!file)
return;
new buffer[64];
new player_name[32];
new fplayer_name[32];
get_user_name(id, player_name, charsmax(player_name));
while(!feof(file))
{
buffer[0] = '^0';
fgets(file, buffer, charsmax(buffer));
if(strlen(buffer) < 2)
continue;
if(strcmp(fplayer_name, player_name) == 0)
{
Origin[id][0] = str_to_num(Origin[id][0]);
set_user_origin (id, Origin[id]);
break;
}
}
fclose(file);
q[id] = 1;
}
stock replace_str_to_file(filename[], what[], with[])
{
if(!file_exists(filename)) return -1
static file; file = fopen(filename, "rt")
static size; size = file_size(filename, 1)
static buffer[512], i, line; i = -1
static bool:ret; ret = false
static Array:array; array = ArrayCreate(512)
while(++i < size)
{
fgets(file, buffer, charsmax(buffer))
if(ret || !equal(buffer, what))
{
ArrayPushString(array, buffer)
continue
}
ret = true
line = i
ArrayPushString(array, with)
}
fclose(file)
if(!ret)
{
ArrayDestroy(array)
return 0
}
file = fopen(filename, "wt"); i = -1
while(++i < size)
{
ArrayGetString(array, i, buffer, charsmax(buffer))
fputs(file, buffer)
}
fclose(file)
ArrayDestroy(array)
return line
}
Сейчас этот форум просматривают: Google [Bot] и гости: 9