Вход

Просмотр полной версии : [Вопрос] Строка не передаётся через таймер



KrutoyKrosch
21.12.2016, 21:59
На оф форуме мы можем заметить пример как передавать string через таймер.

Однако я попытался сделать так же и что у меня из этого вышло

Запуск таймера

name_file_for_r[0] = EOS;
strcat(name_file_for_r, dir_for_r);
strcat(name_file_for_r, "/checkpoints.txt");

file_create(name_file_for_r);

SetTimerEx("OpenFileForRaceSystemCheckpoint", 500, 0, "is", playerid, name_file_for_r);

Далее в паблике OpenFileForRaceSystemCheckpoint



forward OpenFileForRaceSystemCheckpoint(playerid, dir_file[]);
public OpenFileForRaceSystemCheckpoint(playerid, dir_file[])
{
printf("%s\n", dir_file);
}


И выводит по какой то причине не путь к файлу, а просто символ "r".

Из за чего такое происходит? Я проверял, в массиве name_file_for_r точно лежит путь до файла, либо же просто файл там не создавался.

Ответ на вопрос зачем тут таймер если можно сразу тот код туда:

Я хочу сразу же после создания файла записать в него что то. Сначала так и сделал, но по каким то причинам в файл ничего не записывало, мне кажется это из за того что файл просто не успевал создаться (т.к. я его создаю в двойном каталоге, то есть /папка/папка/файл)... Вот и подумал сделать небольшой промежуток в 500 млс

KrutoyKrosch
21.12.2016, 23:30
Ну проблему с записью в файл решил, я надеялся на свою силу угадывания аргументов... А там понадобилась еще сила угадывания английского


// Opens a file for line-by-line reading. a for append, w for write, r for read.

Но все равно хочется узнать почему через таймер string не передавало

DeimoS
22.12.2016, 00:50
Но все равно хочется узнать почему через таймер string не передавало

Потому что баг сампа. Об это написано тут (https://wiki.sa-mp.com/wiki/SetTimerEx) и там же ссылка на возможный фикс

http://i.imgur.com/okqNGdV.png

KrutoyKrosch
23.12.2016, 03:09
Ну говорю же, угадывание английского

DeimoS
23.12.2016, 12:13
Там даже с переводом гугла общиё смысл ясен =)

Вопрос решён?

KrutoyKrosch
23.12.2016, 13:21
Я русскую версию просто сморел)

Да