1

Тема: AHK: Проверка, находится ли игрок в транспорте.

Игра: san andreas multiplayer
Язык: AutoHotKey

Всем привет, мне нужно, чтобы высвечивались имена всех игроков, которые нахотядся на пассажирском сидении в моём транспорте. На нажатие кнопки F2, не подскажете как такое можно сделать?

2

Re: AHK: Проверка, находится ли игрок в транспорте.

Выдает все иды кроме твоего.

getIdsInAnyVehicle()
{
	if (isPlayerInAnyVehicle())
	{
		cVeh := readDWORD(hGTA, 0xB79530)
		playerCount := 0
		ids := []
		index := 0
        
		Loop, 8
		{
			playerId := getIdByPed(readDWORD(hGTA, cVeh + (1120 + index)))
			if (playerId != -1)
			{
				playerCount++
				ids.Push(playerId)
			}
            index := 4 * A_Index
		}
		
		if (!playerCount)
			return 0
		return ids
	}
	return -1
}
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

3

Re: AHK: Проверка, находится ли игрок в транспорте.

Phoenixxx_Czar, спасибо!

4 (изменено: sanniauto, 2017-10-24 09:36:37)

Re: AHK: Проверка, находится ли игрок в транспорте.

А всё понял.

5

Re: AHK: Проверка, находится ли игрок в транспорте.

Хотя я не понял какая переменная выводит id всех игроков, если эта - getIdsInAnyVehicle() - то она не выводит.

6

Re: AHK: Проверка, находится ли игрок в транспорте.

Прочитайте в справке как работают функции и все поймете.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7

Re: AHK: Проверка, находится ли игрок в транспорте.

sanniauto, она возвращает массив идов.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

8

Re: AHK: Проверка, находится ли игрок в транспорте.

Phoenixxx_Czar, ну массив то понятно, но можно ли вывести именно конкретные иды игроков?

9

Re: AHK: Проверка, находится ли игрок в транспорте.

sanniauto, выведи значение из массива.. Шо ты тупишь?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

10

Re: AHK: Проверка, находится ли игрок в транспорте.

Phoenixxx_Czar, а как вывести значение из массива?

11

Re: AHK: Проверка, находится ли игрок в транспорте.

Если ты про это,

F5::
Playerids := getIdsInAnyVehicle()
addChatMessage("id: "(Playerids))
return

то тут не выводит иды игроков.

12

Re: AHK: Проверка, находится ли игрок в транспорте.

sanniauto,


!1::
ids := getIdsInAnyVehicle()
if (!ids)
	AddChatMessage("Кроме вас не кого в машине нету.")
else if (ids == -1)
	AddChatMessage("Вы не в машине")
else
{
	for k, v in ids
	{
		addchatmessage(v) ; в v и содержится ид
	}
}
return
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

13

Re: AHK: Проверка, находится ли игрок в транспорте.

Phoenixxx_Czar, спс тут работает.