Не обновляется функция.

vampir0822

Известный
Автор темы
7
0
В общем такая проблема, наговнокодил небольшой скрипт, нужен для работы другого скрипта.
Вот код:
!9::
idcar := getVehicleID()
idryadom := getClosestPlayerId()
idcarryadom := getPlayerVehicleID(idryadom)

playername:=getPlayerNameById(idryadom)
fullname:=RegExReplace(playername, "(.*)_")
fullnametwo:=RegExReplace(playername, "_(.*)")
if (idcar = idcarryadom)
{
SendChat("В Машине игрок: " fullname " " fullnametwo "")
}
else
{
SendChat("В машине нет игрока")
}
return

Как он работает я думаю вы поняли.
Теперь такая проблема, пока игрок просто стоит рядом, все работает как надо и он его не видит, как только он садится в кар, при запросе скрипт отрабатывает как надо, но стоит ему выйти из машины, статус его нахождения в машине не меняется и скрипт дальше думает что он сидит в моей тачке до тех пор, пока он не пересядет в другой кар, либо не пропадет из зоны стрима.
Функция вообще не хочет обновляться если он просто вышел из кара, можно ли придумать как ее обновить, либо воспользоваться чем-то другим для реализации??
Памагитии. Очень надо чтоб при выходе из кара функция обновлялась и показывала что он с нее вылез.
 

Degrando AHK

Активный
101
31
В общем такая проблема, наговнокодил небольшой скрипт, нужен для работы другого скрипта.
Вот код:
!9::
idcar := getVehicleID()
idryadom := getClosestPlayerId()
idcarryadom := getPlayerVehicleID(idryadom)

playername:=getPlayerNameById(idryadom)
fullname:=RegExReplace(playername, "(.*)_")
fullnametwo:=RegExReplace(playername, "_(.*)")
if (idcar = idcarryadom)
{
SendChat("В Машине игрок: " fullname " " fullnametwo "")
}
else
{
SendChat("В машине нет игрока")
}
return

Как он работает я думаю вы поняли.
Теперь такая проблема, пока игрок просто стоит рядом, все работает как надо и он его не видит, как только он садится в кар, при запросе скрипт отрабатывает как надо, но стоит ему выйти из машины, статус его нахождения в машине не меняется и скрипт дальше думает что он сидит в моей тачке до тех пор, пока он не пересядет в другой кар, либо не пропадет из зоны стрима.
Функция вообще не хочет обновляться если он просто вышел из кара, можно ли придумать как ее обновить, либо воспользоваться чем-то другим для реализации??
Памагитии. Очень надо чтоб при выходе из кара функция обновлялась и показывала что он с нее вылез.
тебе типо надо узнать есть ли игрок рядом с тобой в машине?
В общем такая проблема, наговнокодил небольшой скрипт, нужен для работы другого скрипта.
Вот код:
!9::
idcar := getVehicleID()
idryadom := getClosestPlayerId()
idcarryadom := getPlayerVehicleID(idryadom)

playername:=getPlayerNameById(idryadom)
fullname:=RegExReplace(playername, "(.*)_")
fullnametwo:=RegExReplace(playername, "_(.*)")
if (idcar = idcarryadom)
{
SendChat("В Машине игрок: " fullname " " fullnametwo "")
}
else
{
SendChat("В машине нет игрока")
}
return

Как он работает я думаю вы поняли.
Теперь такая проблема, пока игрок просто стоит рядом, все работает как надо и он его не видит, как только он садится в кар, при запросе скрипт отрабатывает как надо, но стоит ему выйти из машины, статус его нахождения в машине не меняется и скрипт дальше думает что он сидит в моей тачке до тех пор, пока он не пересядет в другой кар, либо не пропадет из зоны стрима.
Функция вообще не хочет обновляться если он просто вышел из кара, можно ли придумать как ее обновить, либо воспользоваться чем-то другим для реализации??
Памагитии. Очень надо чтоб при выходе из кара функция обновлялась и показывала что он с нее вылез.
AutoHotKey:
!9::
id := getClosestPlayerId()
nick := getPlayerNameById(id)
if isTargetInAnyVehicleById(id) == 1
{
    addchatmessage("В машине игрок: " nick "[" id "].")
}
else
{
    addchatmessage("Игрок " nick "[" id "] не в автомобиле.")
}
 
Последнее редактирование:
  • Нравится
Реакции: vampir0822

vampir0822

Известный
Автор темы
7
0
тебе типо надо узнать есть ли игрок рядом с тобой в машине?

AutoHotKey:
!9::
id := getClosestPlayerId()
nick := getPlayerNameById(id)
if isTargetInAnyVehicleById(id) == 1
{
    addchatmessage("В машине игрок: " nick "[" id "].")
}
else
{
    addchatmessage("Игрок " nick "[" id "] не в автомобиле.")
}
Не совсем, но это не суть, проблема в "isTargetInAnyVehicleById(id)".
Можешь проверить зайти и свой код, проблема та же, пока перс не в машине, определяет правильно, когда сел в машину, тоже все верно, выдает что в машине, но после того как он выйдет, при проверке он все еще будет в машине, пока не выйдешь за зону стрима и не вернешься обратно, проблема именно в этом, мне нужно чтобы после того как перс выйдет из машины, скрипт показывал что он не в машине, и не нужно было уезжать за зону стрима чтобы функция обновилась.
 

Degrando AHK

Активный
101
31
Не совсем, но это не суть, проблема в "isTargetInAnyVehicleById(id)".
Можешь проверить зайти и свой код, проблема та же, пока перс не в машине, определяет правильно, когда сел в машину, тоже все верно, выдает что в машине, но после того как он выйдет, при проверке он все еще будет в машине, пока не выйдешь за зону стрима и не вернешься обратно, проблема именно в этом, мне нужно чтобы после того как перс выйдет из машины, скрипт показывал что он не в машине, и не нужно было уезжать за зону стрима чтобы функция обновилась.
Сейчас протестирую :)
Протестировал, дай минутку.
isTargetInAnyVehicleById(dwId) можно ещё попробывать, но вряд ли сработает.
А так, я не шарю как сделать обновление.
Сейчас ещё вариант попробую.
Попробуй:
AutoHotKey:
$~NumpadEnter::
$~Enter::
if (isInChat() = 1 && isDialogOpen() = 0)
{
    Sleep 250
    dwAddress := dwSAMP + 0x12D8F8
    chatInput := readString(hGTA, dwAddress, 256)
    if (chatInput == /test)
{
ids := getClosestPlayerId()
nick := getPlayerNameById(ids)
inveh := isTargetInAnyVehicleById(ids)
If (inveh == 1) {
addchatmessageEx(0xf7943c, "[AHK] Ближайший к вам игрок " nick "[" ids "] находиться в транспорте")
} else if (inveh == 0){
addchatmessageEx(0xf7943c, "[AHK] Ближайший к вам игрок " nick "[" ids "] не находиться в транспорте")
} else {
addchatmessageEx(0xf7943c, "[AHK] Ошибка")
}
}
}
thx @Rinat_Namazov
 
Последнее редактирование:
  • Нравится
Реакции: vampir0822

vampir0822

Известный
Автор темы
7
0
Сейчас протестирую :)
Протестировал, дай минутку.
isTargetInAnyVehicleById(dwId) можно ещё попробывать, но вряд ли сработает.
А так, я не шарю как сделать обновление.
Сейчас ещё вариант попробую.
Попробуй:
AutoHotKey:
$~NumpadEnter::
$~Enter::
if (isInChat() = 1 && isDialogOpen() = 0)
{
    Sleep 250
    dwAddress := dwSAMP + 0x12D8F8
    chatInput := readString(hGTA, dwAddress, 256)
    if (chatInput == /test)
{
ids := getClosestPlayerId()
nick := getPlayerNameById(ids)
inveh := isTargetInAnyVehicleById(ids)
If (inveh == 1) {
addchatmessageEx(0xf7943c, "[AHK] Ближайший к вам игрок " nick "[" ids "] находиться в транспорте")
} else if (inveh == 0){
addchatmessageEx(0xf7943c, "[AHK] Ближайший к вам игрок " nick "[" ids "] не находиться в транспорте")
} else {
addchatmessageEx(0xf7943c, "[AHK] Ошибка")
}
}
}
thx @Rinat_Namazov
Беда все та же. Пока он не в тачке, все отображается правильно, когда он сел, отображает правильно, но когда он с нее вышел, скрипт продолжает думать что чел все еще сидит в машине, пока не уйдешь за зону стрима и не вернешься обратно, только тогда отображает снова правильно.
Спасибо за помощь.
Тоже пытался как-то починить эту функцию, но проблема не пропадает.
 

SuSmer4Coder

Активный
389
46
  • Лучший ответ
  • #6
Вот это работает, проверил. Пишет всех кто находится в ТС.
AutoHotKey:
#Include ../inc/samp.ahk
radius := 15 ; расстояние до нужного пес-а.

Hotkey, Numpad1, go, V
return
go:
{
    с := 1
    i := 1
    
    p := getStreamedInPlayersInfo()
    For i, o in p
        {
                    if( floor((getDist(o.POS, getCoordinates()))) <= radius && isPlayerInAnyVehicle() && getTargetVehicleModelIdById(getPlayerIdByName(o.Name)) == getVehicleModelId())
                    {
                        Car%c% := o.Name
                        c++
                    }
        }
        
        с := 1
        i := 1
        
        while( i < c)
        {
            if( Car%i% == null)
            {
                addChatMessage("[CAR-HELPER] в транспорте нет игроков")
                break
            }
            
            addChatMessage("[CAR-HELPER] в транспорте находится игрок: " Car%i% )
            i++
        }
        i := 1
        c := 1
        Sleep, 500
}
 
  • Нравится
Реакции: vampir0822

vampir0822

Известный
Автор темы
7
0
Вот это работает, проверил. Пишет всех кто находится в ТС.
AutoHotKey:
#Include ../inc/samp.ahk
radius := 15 ; расстояние до нужного пес-а.

Hotkey, Numpad1, go, V
return
go:
{
    с := 1
    i := 1
   
    p := getStreamedInPlayersInfo()
    For i, o in p
        {
                    if( floor((getDist(o.POS, getCoordinates()))) <= radius && isPlayerInAnyVehicle() && getTargetVehicleModelIdById(getPlayerIdByName(o.Name)) == getVehicleModelId())
                    {
                        Car%c% := o.Name
                        c++
                    }
        }
       
        с := 1
        i := 1
       
        while( i < c)
        {
            if( Car%i% == null)
            {
                addChatMessage("[CAR-HELPER] в транспорте нет игроков")
                break
            }
           
            addChatMessage("[CAR-HELPER] в транспорте находится игрок: " Car%i% )
            i++
        }
        i := 1
        c := 1
        Sleep, 500
}
Большое спасибо! С меня плюшка.:3
Воспользуюсь моментом, есть ссылка не битая на командный процессор? не могу найти.