Нерабочая функция

Smer4

Известный
Автор темы
424
51
Есть функция
AutoHotKey:
#Include ..\samp.ahk
getIdOnline()
{
    i = 0
    r = 0
    updateScoreboardDataEx() ; обновляем данные в tab-е
    atonline:
    {
        while(i<1001)
        {
            if(getPlayerNameById(i) != 0)
            {
                ppl[r]
                r++
            }
            i++
        }
    }
    return, ppl
}
MsgBox, % ppl[1]
она поидеи возвращает ники тех кто сейчас в online, но возвращает пустое значение, мб кто-то поможет в исправлении моей криворукости
 

Smer4

Известный
Автор темы
424
51
А вот так возвращает 1 ник в 1 элементе массива, но 1 ник это не все никнеймы
AutoHotKey:
GetNamesOnline()
{
    i = 0
    r = 0
    updateOScoreboardData()
    updateScoreboardDataEx()
    while(i<1001)
    {
        if(nick := getPlayerNameById(i))
        {
            ppl := nick "`n"
        }
    i++
    }
    tr := StrSplit(ppl, "`n")
    return tr
}
MsgBox, % GetNamesOnline()[2]
 

index

Известный
126
82
Все ники есть в объекте oScoreboardData. Ник игрока с id = playerId можно получить как oScoreboardData[playerId].NAME. Кроме NAME есть поля ID, PING, SCORE, ISNPC. У тех, кто в зоне стрима - еще и MPOS (массив координат [x, y, z]), PED, HP, ARMOR
AutoHotKey:
if(iRefreshScoreboard+iUpdateTick < A_TickCount)
  if(!updateOScoreboardData())
    return
txt := ""
for k, v in oScoreboardData
  txt .= k " - " v.name " - " v.ping " - "
       . v.score (v.ped? " - " v.hp " - " v.armor " - " v.mpos[1] ", " v.mpos[2] ", " v.mpos[3] : "") "`n"
msgbox % txt
 
Последнее редактирование: