1 (изменено: drn, 2015-01-05 22:19:18)

Тема: AHK: File Loop read

Добрый вечер, уважаемые. У меня один небольшой вопрос. Делаю скрипт для samp и столкнулся с небольшой проблемой.
Немного подробнее, есть файл players.txt, в нем написаны ники, каждый ник с новой строки. Скрипт должен проверить кто из этих игроков сейчас онлайн. Для проверки используется инклуд samp.ahk, но проблема заключается не в этом. В инклуде есть специальная функция для вывода диалога (ShowDialog). Так вот, скрипт должен проверить кто из игроков из списка находится онлайн и вывести их всех в диалог, каждый ник с новой строки. А мой скрипт чекает всех на онлайн, но выводит почему-то только одного. Помогите пожалуйста исправить проблему

#include samp.ahk
F11::
IfNotExist, %A_ScriptDir%\players.txt
FileAppend,,%A_ScriptDir%\players.txt
fstring := ""
Loop, read, %A_ScriptDir%\players.txt
{
StringReplace, Nick, A_LoopReadLine,%A_SPACE%,, All
if(StrLen(Nick) = 0)
continue
id := getPlayerIdByName(Nick)
if(id = -1)
continue
igroka := fstring "{FFFFFF}Игрок {ff9900}" . getPlayerNameById(id) . "[" . id . "] {FFFFFF}онлайн`n"
ShowDialog("0", "{ff0000}Игроки ONLINE", igroka, "Закрыть")
}
if шпкщлф =
{
ShowDialog("0", "{ff0000}Игроки ONLINE", "{ff9900}Игроков нет!", "Закрыть")
}
return

2

Re: AHK: File Loop read

Нет, диалог выводится столько раз, сколько строк в файле players.txt. Так что проблема где-то в другом месте.

3

Re: AHK: File Loop read

Попробуй заменить эту строку:

igroka := fstring "{FFFFFF}Игрок {ff9900}" . getPlayerNameById(id) . "[" . id . "] {FFFFFF}онлайн`n"

На:

igroka .= fstring "{FFFFFF}Игрок {ff9900}" . getPlayerNameById(id) . "[" . id . "] {FFFFFF}онлайн`n"
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

4

Re: AHK: File Loop read

А, если имелось в виду, чтобы все имена в одном диалоге, тогда да.

5

Re: AHK: File Loop read

Большое спасибо