Вопросы по AHK-скриптингу

Anton_Hamond

Новичок
13
2
код не маленький.
Здесь часть кода так как весь не влез.
AutoHotKey:
#IfWinActive GTA:SA:MP
#include SAMP.ahk
#SingleInstance force



NumpadSub::
SendMessage, 0x50,, 0x4190419,, A
pog:=getClosestPlayerIdCarNotCopFBI()
if(!checkHandles())
   return
dwAddr := getVehiclePointerById(pog)
fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
fVehicleSpeed := (fVehicleSpeed * 100) * 1
fVehicleSpeed := Round(fVehicleSpeed)
if (fSpeedY==0)
   {
   if (fSpeedX>0)
      fVehicleAtan:="1.57"
   else if (fSpeedX>0)
      fVehicleAtan:="-1.57"
   else if (fSpeedX==0)
      {
      AddMessageToChatWindow("Преступник не в машине или стоит на месте")
      return
      }
   }
else
   {
   fVehicledelta := fSpeedY / fSpeedX
   fVehicleAtan:=ATan(fVehicledelta)
   }
if (fSpeedX>0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="южном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="юго-восточном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="восточном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="северо-восточном"
   if (fVehicleAtan>1.1781)
      naprav:="северном"
   }
if (fSpeedX<0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="северном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="северо-западном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="западном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="юго-западном"
   if (fVehicleAtan>1.1781)
      naprav:="южном"
   }
fVehicleid := getTargetVehicleModelIdById(pog)
if (fVehicleid>400 && fVehicleid<611)
   fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
else 
   fVehicleModel:="Автомобиля"
kv:=getPlayerZone()
SendChat("/m Водитель, " fVehicleModel " с номерами x" pog "yz, прижмитесь к обочине и остановитесь.")
Sleep 1200
SendChat("/m Или мы откроем огонь на поражение!")
return


F1::
s:=-1
f:=0
AllName:=""
loop, 4
{
    s++
    IdP:=getMyPassengerId(s)
    Skin:=getTargetPlayerSkinIdByPed(getPedById(IdP))
    if((Skin==76 or Skin==265 or Skin==266 or Skin==267 or Skin==280 or Skin==281 or Skin==282 or Skin==283 or Skin==284 or Skin==285 or Skin==288 or Skin==300 or Skin==301 or Skin==302 or Skin==303 or Skin==304 or Skin==305 or Skin==306 or Skin==307 or Skin==308 or Skin==309 or Skin==310 or Skin==311) and IdP!=-1)
    {
        f++
        Name:=getPlayerNameById(IdP)
        RegExMatch(Name, "^([A-Z])[a-z]*_([A-Z][a-z]*)$", NameB)
        if(AllName=="")
            AllName:=NameB1 "." NameB2
        else AllName:=AllName ", " NameB1 "." NameB2
    }
}
if(f==0)
    Output:=""
else if(f==1)
    Output:="Напарник: " AllName "."
else if(f>=2)
    Output:="Напарники: " AllName "."
b:=StrLen(Output)+2
Sendinput {F6}/r 10-4. %Output%{Left %b%}
Return



!2::
o1:=Object()
o1:=GetCoordinates()
targ:=getIdByPed(getTargetPed())
if (targ!=-1)
   {
   point:=readDWORD(hGTA, getTargetPed() + 0x79C)
   slot:=readMem(hGTA, getTargetPed() + 0x718, 1, "byte")
   if (point!=0 and getIdByPed(point)==-1 and slot>1 and slot<8)
      {
      AddMessageToChatWindow(" Нельзя выдавать розыск человеку, который стреляет в вас")
      return
      }
   if getDist(o1,getPedCoordinates(getPedById(targ)))<23
      SendChat("/su " targ " 3 Неподчинение, попытка скрыться")
   } 
else 
   Sendinput {F6}/su  3 Неподчинение, попытка скрыться{left 33}
Return


NumpadDot::
targ:=getIdByPed(getTargetPed())
if (targ!="-1")
   {
   name:=getPlayerNameById(targ)
   SendChat("/me отстегнул преступника от себя, затем пристегнул к столу")
   sleep 1200
   SendChat("/uncuff " targ) 
   sleep 1200
   SendChat("/cuff " targ)
   sleep 1200
   SendChat("/do Одна рука " name " свободна")
   Sleep 1200 
   } 
else 
   {
   AddMessageToChatWindow("Ошибка ( Нет таргета )")
   }
Return

NumpadDiv::
SendMessage, 0x50,, 0x4190419,, A
StringReplace, RPName, Name, _, %A_Space%, All
SendChat("" RPname ", вы задержаны по наводке диспетчера.")
Sleep 1200
Return

!4::
targ:=getClosestPlayerIdUnit()
if (targ!="-1")
{
name:=getPlayerNameById(targ)
SendMessage, 0x50,, 0x4190419,, A
SendChat("/try схватил " name " за ногу")
sleep 1200
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileRead, Chatlog, %File%
check = 0
nick:=getUsername()
if RegExMatch(Chatlog, "s).*" nick "\sсхватил\s" name "\sза\sногу\s.*?\[(.*?)\]", var)
{
if var1 = Удачно
   {
   SendMessage, 0x50,, 0x4190419,, A

   SendChat("/cuff " targ "")
   check = 1
   }
if var1 = Неудачно
   {
   SendMessage, 0x50,, 0x4190419,, A

   StringReplace, lala, name, _, %A_SPACE%, All
   StringReplace, vava, nick, _, %A_SPACE%, All
   SendChat("/do " lala " вырвался из захвата " vava "")
   check = 1 
  }
if check not between 1 and 2
  {
   SendMessage, 0x50,, 0x4190419,, A

   AddMessageToChatWindow("Ошибка ( check не 1/2 )")
  }
}
else
{

   SendMessage, 0x50,, 0x4190419,, A

   AddMessageToChatWindow("Ошибка ( не нашел текст /try )")
}
}
else
{
AddMessageToChatWindow("Цель слишком далеко или это полицейский/ФБР")
} 
Return

F9::
SendMessage, 0x50,, 0x4190419,, A
pog:=getClosestPlayerIdCarNotCopFBI()
if(!checkHandles())
   return
dwAddr := getVehiclePointerById(pog)
fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
fVehicleSpeed := (fVehicleSpeed * 100) * 1
fVehicleSpeed := Round(fVehicleSpeed)
if (fSpeedY==0)
   {
   if (fSpeedX>0)
      fVehicleAtan:="1.57"
   else if (fSpeedX>0)
      fVehicleAtan:="-1.57"
   else if (fSpeedX==0)
      {
      AddMessageToChatWindow("Преступник не в машине или стоит на месте")
      return
      }
   }
else
   {
   fVehicledelta := fSpeedY / fSpeedX
   fVehicleAtan:=ATan(fVehicledelta)
   }
if (fSpeedX>0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="южном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="юго-восточном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="восточном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="северо-восточном"
   if (fVehicleAtan>1.1781)
      naprav:="северном"
   }
if (fSpeedX<0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="северном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="северо-западном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="западном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="юго-западном"
   if (fVehicleAtan>1.1781)
      naprav:="южном"
   }
fVehicleid := getTargetVehicleModelIdById(pog)
if (fVehicleid>400 && fVehicleid<611)
   fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
else 
   fVehicleModel:="Автомобиль"
kv:=getPlayerZone()
SendChat("/r 10-16 " fVehicleModel " с номерами x" pog "yz, движущийся в " kv "")
Sleep 1200
SendChat("/r со скоростью " fVehicleSpeed " км/ч в " naprav " направлении.")
return


$~Enter::
SendMessage, 0x50,, 0x4190419,, A
if(!checkHandles())
   return
LastLine:=GetChatText()
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if (lastLine==-1)
   return
if RegExMatch(lastLine, "^\/zv\s(\d+)$", id)
   {
   if (id1>999)
      {
      addChatMessageWithColor("AFAFAF", " Вы указали некорректный id")
      return
      }
   NameWantedPlayer:=getPlayerNameById(id1)
   if (NameWantedPlayer=="")
      {
      addChatMessageWithColor("AFAFAF", " Игрок оффлайн")
      return
      }
   Wanted:=""
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\<\<\sОфицер\s.*?\sарестовал\s" NameWantedPlayer) or RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Clear\]\s[A-Za-z0-9_]*?\sудалил\sиз\sрозыскиваемых\s" NameWantedPlayer))
         ResetLines:=NumberOfLines
      }
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (NumberOfLines>ResetLines and RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Wanted\s\d:\s" NameWantedPlayer "\]\s\[.*?:\s[A-Za-z0-9_]*?\]\s\[(.*?)\]$", su))
         If (not RegExMatch(Wanted, su1)) 
            if (Wanted!="")
               Wanted:=Wanted ", " su1
            else
               Wanted:=su1
      }
   if (Wanted=="")
      Wanted:="Нет данных"
   addChatMessageWithColor("FFFF00", " " NameWantedPlayer " совершил(а) " Wanted)
   return
   }
if (RegExMatch(lastLine, "^\/zv$") or RegExMatch(lastLine, "^\/zv\s.+$"))
   {
   addChatMessageWithColor("FFFFFF", " Введите: /zv [id игрока]")
   return
   }
if RegExMatch(lastLine, "^\/zap\s(.+)$", id)
   {
   StrokaNovogoZapreta:=""
   StrokaNikovZapret:=""
   KolvoId:=0
   Soderjimoe:=id1
   PatternSoderjimogo:="(\d+)\s(\D+)"
   while RegExMatch(Soderjimoe, PatternSoderjimogo, id)
      {
      KolvoId:=KolvoId+1
      PatternSoderjimogo:="(\d+)\s" PatternSoderjimogo
      NickName%A_Index%:=id1
      if (A_Index==1)
         kpz:=id2
      }
   if (KolvoId==0)
      {
      addChatMessageWithColor("FFFFFF", " Введите: /zap [id игроков через пробел] [место заключения]")
      return
      }
   Loop %KolvoId%
      {
      IndexId:=KolvoId+1-A_Index
      IdWantedPlayer:= NickName%IndexId%
      NameWantedPlayer:=getPlayerNameById(IdWantedPlayer)
      if (RegExMatch(NameWantedPlayer, "_.+?_") or RegExMatch(NameWantedPlayer, "\d+"))
         {
         StringReplace, NameWantedPlayer, NameWantedPlayer, _, %A_SPACE%, All
         RegExMatch(NameWantedPlayer, "[A-Za-z0-9].*[A-Za-z0-9]", NameWantedPlayer)
         NameWantedPlayer = "%NameWantedPlayer%"
         }
      else if RegExMatch(NameWantedPlayer, "([A-Z][a-z]*?)_+([A-Z][a-z]*?)$", idf)
         NameWantedPlayer = %idf1% %idf2%
      else
         {
         StringReplace, NameWantedPlayer, NameWantedPlayer, _, %A_SPACE%, All
         if (NameWantedPlayer!="")
            NameWantedPlayer = "%NameWantedPlayer%"
         }
      if (StrokaNikovZapret!="")
         if (StrLen(StrokaNikovZapret NameWantedPlayer kpz)<69)
            StrokaNikovZapret:=StrokaNikovZapret ", " NameWantedPlayer
         else if (StrokaNovogoZapreta=="")
            StrokaNovogoZapreta:=IdWantedPlayer
         else
            StrokaNovogoZapreta:=StrokaNovogoZapreta " " IdWantedPlayer
      else
         StrokaNikovZapret:= NameWantedPlayer
      }
   if (StrokaNikovZapret=="")
      {
      if (KolvoId!=1)
         addChatMessageWithColor("AFAFAF", " Игроки оффлайн")
      else
         addChatMessageWithColor("AFAFAF", " Игрок оффлайн")
      return
      }
   sleep 1200
   sendinput, {F6}/dep 10-14 %StrokaNikovZapret% — %kpz%{enter}
   if (StrokaNovogoZapreta!="")
      {
      addChatMessageWithColor("FFFF00", " Внимание! Некоторые игроки не были запрещены. Команда для их запрета скопирована в буфер обмена.")
      clipboard:= "/zap " StrokaNovogoZapreta " " kpz
      }
   return
   }
if RegExMatch(lastLine, "^\/zap$")
   {
   addChatMessageWithColor("FFFFFF", " Введите: /zap [id игроков через пробел] [место заключения]")
   return
   }
if RegExMatch(lastLine, "^\/rad\s(\d+)$", rank)
   {
   sleep 1200
   name:=getPlayerNameById(rank1)
   nick:=getUsername()
   if (isTargetInAnyVehiclebyIdMod(rank1)=="-1" and nick!=name)
      {
      AddMessageToChatWindow("Цель не в транспортном средстве или слишком далеко")
      return
      }
   if (nick==name)
      {
      if (isPlayerDriverMod()=="-1")
         {
         AddMessageToChatWindow("Вы не в транспортном средстве")
         return
         }
      SendChat("/me посмотрел на спидометр")
      sleep 1200
      dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
      fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
      fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
      fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
      fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
      fVehicleSpeed := (fVehicleSpeed * 100) * 1
      fVehicleSpeed := Round(fVehicleSpeed)
      SendChat("/do Скорость автомобиля равна " fVehicleSpeed " км/ч")
      }
   else
      {
      dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
      dwVal := readDWORD(hGTA, dwAddr + ADDR_VEHICLE_DRIVER)
      dwPedPointer := getPedById(rank1)
      dwVehiclePointer := getVehiclePointerByPed(dwPedPointer)
      dwVali := readDWORD(hGTA, dwVehiclePointer + ADDR_VEHICLE_DRIVER)
      if (dwVal==dwVali and isPlayerDriverMod()!="-1")
         {
         SendChat("/me посмотрел на спидометр")
         sleep 1200
         fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
         fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
         fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
         fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
         fVehicleSpeed := (fVehicleSpeed * 100) * 1
         fVehicleSpeed := Round(fVehicleSpeed)
         SendChat("/do Скорость равна " fVehicleSpeed " км/ч")
         }
      else
         {
         fVehicleid := getTargetVehicleModelIdById(rank1)
         if (fVehicleid>400 && fVehicleid<611)
            fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
         else 
            fVehicleModel:="автомобиль"
         SendChat("/me включил полицейский радар и направил на " fVehicleModel)
         sleep 1200
         o1:=Object()
         o1:=GetCoordinates()
         if (getDist(o1,getPedCoordinates(getPedById(rank1)))>30)
            SendChat("/do Радар не смог определить скорость цели")
         else
            {
            dwAddr := getVehiclePointerById(rank1)
            fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
            fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
            fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
            fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
            fVehicleSpeed := (fVehicleSpeed * 100) * 1
            fVehicleSpeed := Round(fVehicleSpeed)
            SendChat("/do Показания прибора равны " fVehicleSpeed " км/ч")
            }
         }
      }
   return
   }
if RegExMatch(lastLine, "^\/rad$")
   {
   addChatMessageWithColor("FFFFFF", " Введите: /rad [id игрока]")
   return
   }
Return

!5::
if (isPlayerDriverMod()==-1)
   {
   its:=getClosestPlayerIdUnitByCar()
   ModellCar:=getTargetVehicleModelIdById(its)
   name:=getPlayerNameById(its)
   StringReplace, lala, name, _, %A_SPACE%, All
   if (getTargetVehicleModelNameById(its)="PoliceCar" or getTargetVehicleModelNameById(its)=="Enforcer" or ModellCar==497)
      {
      SendChat("/me вытащил " name " из машины")
      Sleep 1200
      }
   else if (getTargetVehicleModelNameById(its)=="HPV1000")
      {
      SendChat("/me вытащил " name " c мотоцикла")
      Sleep 1200
      }
   else if (ModellCar==448 or ModellCar==461 or ModellCar==462 or ModellCar==462 or ModellCar==463 or ModellCar==468 or ModellCar==471 or ModellCar==481 or ModellCar==509 or ModellCar==510 or ModellCar==521 or ModellCar==522 or ModellCar==581 or ModellCar==586)
      {
      SendChat("/me скрутил " name)
      Sleep 1200
      SendChat("/cuff " its)
      Sleep 1200
      nick:=getUsername()
      StringReplace, papa, nick, _, %A_SPACE%, All
      SendChat("/do " papa " вытаскивает " lala " с мото")
      Sleep 1200
      }
   else
      {
      SendChat("/me разбил стекло автомобиля и скрутил " name)
      Sleep 1200
      SendChat("/cuff " its)
      Sleep 1200
      nick:=getUsername()
      StringReplace, papa, nick, _, %A_SPACE%, All
      SendChat("/do " papa " вытаскивает " lala " из машины")
      Sleep 1200
      }
   SendChat("/ceject " its)
   }
return

F2::
SendChat("/s Стой, стрелять буду!")
sleep 1000
return



!1::
targ:=getIdByPed(getTargetPed())
if(targ!="-1")
    SendChat("/cuff " targ)
else
{
    targ:=getClosestPlayerIdUnitCuff()
    if(targ!=-1)
        SendChat("/cuff " targ)
    else
    {
        addChatMessageWithColor("AFAFAF", " Рядом с вами никого нет")
        Return
    }
}
sleep 1200
Return

getClosestPlayerIdUnitCuff() {
    dist := 8
    p := getStreamedInPlayersInfo()
    if(!p)
        return -1
    lpos := getCoordinates()
    if(!lpos)
        return -1
    id := -1
    For i, o in p
    {
if (getTargetPlayerSkinIdById(i)!="76") and (getTargetPlayerSkinIdById(i)!="265") and (getTargetPlayerSkinIdById(i)!="266") and (getTargetPlayerSkinIdById(i)!="267") and (getTargetPlayerSkinIdById(i)!="280") and (getTargetPlayerSkinIdById(i)!="281") and (getTargetPlayerSkinIdById(i)!="282") and (getTargetPlayerSkinIdById(i)!="283") and (getTargetPlayerSkinIdById(i)!="284") and (getTargetPlayerSkinIdById(i)!="285") and (getTargetPlayerSkinIdById(i)!="288") and (getTargetPlayerSkinIdById(i)!="306") and (getTargetPlayerSkinIdById(i)!="307") and (getTargetPlayerSkinIdById(i)!="309") and (getTargetPlayerSkinIdById(i)!="141") and (getTargetPlayerSkinIdById(i)!="163") and (getTargetPlayerSkinIdById(i)!="164") and (getTargetPlayerSkinIdById(i)!="165") and (getTargetPlayerSkinIdById(i)!="166") and (getTargetPlayerSkinIdById(i)!="286")
       { 
        t:=getDist(lpos,o.POS)
        if(t<dist)
        {
            dist := t
            id := i
        }
    }
}
    return id
}
Return


Numpad2::
SendChat("/lock")
sleep 1200
return

Numpad3::
SendChat("/time")
sleep 1200
return

numpad4::
SendMessage, 0x50,, 0x4190419,, A
Random rand, 1, 4
if (rand==1)
   SendChat("/me затащил преступника в транспортное средство")
if (rand==2)
   SendChat("/me посадил преступника в транспортное средство")
if (rand==3)
   SendChat("/me помог преступнику сесть в транспортное средство")
if (rand==4)
   SendChat("/me запихнул преступника в транспортное средство")
sendinput, {F6}/cput{space}
return

numpad5::
SendMessage, 0x50,, 0x4190419,, A
Random rand, 1, 2
if (rand==1)
   SendChat("/me открыл дверь и вытащил преступника из транспортного средства")
if (rand==2)
   SendChat("/me открыл дверь и высадил преступника из транспортного средства")


sendinput, {F6}/ceject{space}
return


Numpad6::
SendMessage, 0x50,, 0x4190419,, A
targ:=getIdByPed(getTargetPed())
if (targ!="-1")
   {
   name:=getPlayerNameById(targ)
   SendChat("/me пристегнул " name " наручниками к своей левой руке")
   sleep 1200
   SendChat("/follow " targ)
   } 
else 
   AddMessageToChatWindow("Ошибка ( Нет таргета )")
Return

Numpad7::
SendChat("/clist 12")
sleep 1200
Return

Numpad0:: 
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt 
IfNotInString, Chatlog, помечено на карте красной меткой. Дистанция 
{ 
SendChat("/gps 4 4") 
sleep 1200 
SendChat("/gps") 
while(isDialogOpen()==0) 
sleep 5 
Sendinput {Escape} 
sleep 1200 
} 
NameCall:="" 
s:=0 
f:=0 
rr:=0 
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt 
{ 
s++ 
if RegExMatch(A_LoopReadLine, "^\[..:..:..]\s\sДиспетчер:\sвызов\sот\s(.*)\[(\d+)\]\.\sПримерное\sрастояние\s.*", Challenge) 
{ 
rr:=1 
NameCall:=Challenge1 
IdCall:=Challenge2 
} 
} 
if(rr==0) 
{ 
AddChatMessage("{AFAFAF} Вызовов не поступало") 
Return 
} 
SendChat("/service ac cop " IdCall) 
sleep 1200 
Square:=getMarkZone() 
if !RegExMatch(NameCall, "^[A-Z][a-z]*_[A-Z][a-z]*$") 
NameCall:="некого «" NameCall "»" 
StringReplace, NameCall, NameCall, _, %A_SPACE%, All 
if(Square=="Unbekannt" or isPlayerDriverMod()==-1) 
{ 
AddChatMessage("{AFAFAF} Ошибка") 
Return 
} 
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt 
{ 
f++ 
if(f>s and RegExMatch(A_LoopReadLine, "^\[..:..:..\]\s\sДиспетчер:\sвызов\sот\sэтого\sчеловека\sне\sпоступал$")) 
Return 
} 
s:=-1 
f:=0 
AllName:="" 
loop, 4 
{ 
s++ 
IdP:=getMyPassengerId(s) 
Skin:=getTargetPlayerSkinIdByPed(getPedById(IdP)) 
if((Skin==76 or Skin==265 or Skin==266 or Skin==267 or Skin==280 or Skin==281 or Skin==282 or Skin==283 or Skin==284 or Skin==285 or Skin==288 or Skin==300 or Skin==301 or Skin==302 or Skin==303 or Skin==304 or Skin==305 or Skin==306 or Skin==307 or Skin==308 or Skin==309 or Skin==310 or Skin==311) and IdP!=-1) 
{ 
f++ 
Name:=getPlayerNameById(IdP) 
RegExMatch(Name, "^([A-Z])[a-z]*_([A-Z][a-z]*)$", NameB) 
if(AllName=="") 
AllName:=NameB1 "." NameB2 
else AllName:=AllName ", " NameB1 "." NameB2 
} 
} 
mn:="" 
if(f==0) 
Output:="" 
else 
{ 
mn:="и" 
if(f==1) 
Output:="Напарник: " AllName "." 
else if(f>=2) 
Output:="Напарники: " AllName "." 
} 
String:="Принял" mn " вызов от " NameCall " в " Square "." 
Number:=StrLen(String)+StrLen(Output) 
if(Number<=79) 
SendChat("/r " String " " Output) 
else 
{ 
SendChat("/r " String) 
sleep 1200 
SendChat("/r " Output) 
} 
Return


!F3::
SendMessage, 0x50,, 0x4190419,, A
if (IsPlayerInRangeOfPoint(2275, 2459, 10.3, 100))
{
kv:="Гараж ЛВПД"
}
else if (IsPlayerInRangeOfPoint(2173, 1677, 10.3, 100))
{
kv:="Казино Калигула"
}
else if (IsPlayerInRangeOfPoint(2039, 1008, 10.2, 100))
{
kv:="Казино 4 дракона"
}
else if (IsPlayerInRangeOfPoint(2156, 938, 10.3, 100))
{
kv:="АММО ЛВ"
}
else if (IsPlayerInRangeOfPoint(2453, 1347, 10.3, 100))
{
kv:="АВ ЛВ"
}
else if (IsPlayerInRangeOfPoint(2543, 2776, 10.4, 100))
{
kv:="Завод КАСС"
}
else if (IsPlayerInRangeOfPoint(1487, 2782, 10.4, 100))
{
kv:="Гольф клуб"
}
else if (IsPlayerInRangeOfPoint(1608, 1839, 10.4, 100))
{
kv:="Больница ЛВ"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="Холм ЛВА"
}
else if (IsPlayerInRangeOfPoint(330, 1924, 17.2, 100))
{
kv:="Главный склад ЛВА"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="КПП ЛВА"
}
else if (IsPlayerInRangeOfPoint(213, 1887, 14.1, 100))
{
kv:="Бункер ЛВА"
}
else if (IsPlayerInRangeOfPoint(2094, 2477, 10.4, 100))
{
kv:="Спортзал ЛВ"
}
else if (IsPlayerInRangeOfPoint(1838, 801, 10.4, 100))
{
kv:="Похоронное бюро"
}
else if (IsPlayerInRangeOfPoint(1156, 833, 10.3, 100))
{
kv:="Карьер"
}
else if (IsPlayerInRangeOfPoint(179, 1165, 14.3, 100))
{
kv:="Закуска ФК"
}
else if (IsPlayerInRangeOfPoint(287, 1411, 9.9, 100))
{
kv:="Сетка ЛВА"  
}
else if (IsPlayerInRangeOfPoint(-86, 1371, 9.8, 100))
{
kv:="Бар НЛО"
}
else if (IsPlayerInRangeOfPoint(-318, 1057, 10.3, 100))
{
kv:="Больница ФК"
}
else if (IsPlayerInRangeOfPoint(-977, 1307, 34.8, 100)) or (IsPlayerInRangeOfPoint(-1250, 996, 43.5, 100))
{
kv:="Мост СФ-ЛВ"
}
else if (IsPlayerInRangeOfPoint(985, 1711, 8.7, 100))
{
kv:="ЧОП Медведь"
}
else if (IsPlayerInRangeOfPoint(2203, -2243, 13, 100))
{
kv:="Грузчики"
}
else if (IsPlayerInRangeOfPoint(2709, -2404, 13, 100))
{
kv:="Порт ЛС"
}
else if (IsPlayerInRangeOfPoint(87, -1532, 5, 100))
{
kv:="Площадь мэрии"
}
else if (IsPlayerInRangeOfPoint(1934, 196, 32, 100))
{
kv:="Ферма 4"
}
else if (IsPlayerInRangeOfPoint(24, 19, 2, 100))
{
kv:="Ферма 3"
}
else if (IsPlayerInRangeOfPoint(-147, 15, 2, 100))
{
kv:="Ферма 1"
}
else if (IsPlayerInRangeOfPoint(717, -1675, 10, 100))
{
kv:="Алкозавод"
}
else if (IsPlayerInRangeOfPoint(-105, -1156, 2, 100))
{
kv:="Заправка возле фермы 0"
}
else if (IsPlayerInRangeOfPoint(-308, -1403, 13, 100))
{
kv:="Ферма 0"
}
else if (IsPlayerInRangeOfPoint(1201, -935, 42, 100))
{
kv:="Закуска под Vinewood"
}
else if (IsPlayerInRangeOfPoint(994, -937, 40, 100))
{
kv:="Заправка под Vinewood"
}
else if (IsPlayerInRangeOfPoint(1670, -799, 55, 100))
{
kv:="АММО ЛС"
}
else if (IsPlayerInRangeOfPoint(1255, -1575, 12, 100))
{
kv:="АВ ЛС"
}
else if (IsPlayerInRangeOfPoint(1203, -1331, 12, 100))
{
kv:="ASGH"
}
else
{
kv:=getPlayerZone()
}
SendChat("/r 10-34 " kv "")
Return

!9::
SendMessage, 0x50,, 0x4190419,, A
if (IsPlayerInRangeOfPoint(2275, 2459, 10.3, 100))
{
kv:="Гараж ЛВПД"
}
else if (IsPlayerInRangeOfPoint(2173, 1677, 10.3, 100))
{
kv:="Казино Калигула"
}
else if (IsPlayerInRangeOfPoint(2039, 1008, 10.2, 100))
{
kv:="Казино 4 дракона"
}
else if (IsPlayerInRangeOfPoint(2156, 938, 10.3, 100))
{
kv:="АММО ЛВ"
}
else if (IsPlayerInRangeOfPoint(2453, 1347, 10.3, 100))
{
kv:="АВ ЛВ"
}
else if (IsPlayerInRangeOfPoint(2543, 2776, 10.4, 100))
{
kv:="Завод КАСС"
}
else if (IsPlayerInRangeOfPoint(1487, 2782, 10.4, 100))
{
kv:="Гольф клуб"
}
else if (IsPlayerInRangeOfPoint(1608, 1839, 10.4, 100))
{
kv:="Больница ЛВ"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="Холм ЛВa"
}
else if (IsPlayerInRangeOfPoint(330, 1924, 17.2, 100))
{
kv:="Главный склад ЛВa"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="КПП ЛВa"
}
else if (IsPlayerInRangeOfPoint(213, 1887, 14.1, 100))
{
kv:="Бункер ЛВa"
}
else if (IsPlayerInRangeOfPoint(2094, 2477, 10.4, 100))
{
kv:="Спортзал ЛВ"
}
else if (IsPlayerInRangeOfPoint(1838, 801, 10.4, 100))
{
kv:="Похоронное бюро"
}
else if (IsPlayerInRangeOfPoint(1156, 833, 10.3, 100))
{
kv:="Карьер"
}
else if (IsPlayerInRangeOfPoint(179, 1165, 14.3, 100))
{
kv:="Закуска ФК"
}
else if (IsPlayerInRangeOfPoint(287, 1411, 9.9, 100))
{
kv:="Сетка ЛВa"  
}
else if (IsPlayerInRangeOfPoint(-86, 1371, 9.8, 100))
{
kv:="Бар НЛО"
}
else if (IsPlayerInRangeOfPoint(-318, 1057, 10.3, 100))
{
kv:="Больница ФК"
}
else if (IsPlayerInRangeOfPoint(-977, 1307, 34.8, 100)) or (IsPlayerInRangeOfPoint(-1250, 996, 43.5, 100))
{
kv:="Мост СФ-ЛВ"
}
else if (IsPlayerInRangeOfPoint(985, 1711, 8.7, 100))
{
kv:="ЧОП Медведь"
}
else if (IsPlayerInRangeOfPoint(2203, -2243, 13, 100))
{
kv:="Грузчики"
}
else if (IsPlayerInRangeOfPoint(2709, -2404, 13, 100))
{
kv:="Порт ЛС"
}
else if (IsPlayerInRangeOfPoint(87, -1532, 5, 100))
{
kv:="Площадь мэрии"
}
else if (IsPlayerInRangeOfPoint(1934, 196, 32, 100))
{
kv:="Ферма 4"
}
else if (IsPlayerInRangeOfPoint(24, 19, 2, 100))
{
kv:="Ферма 3"
}
else if (IsPlayerInRangeOfPoint(-147, 15, 2, 100))
{
kv:="Ферма 1"
}
else if (IsPlayerInRangeOfPoint(717, -1675, 10, 100))
{
kv:="Алкозавод"
}
else if (IsPlayerInRangeOfPoint(-105, -1156, 2, 100))
{
kv:="Заправка возле фермы 0"
}
else if (IsPlayerInRangeOfPoint(-308, -1403, 13, 100))
{
kv:="Ферма 0"
}
else if (IsPlayerInRangeOfPoint(1201, -935, 42, 100))
{
kv:="Закуска под Vinewood"
}
else if (IsPlayerInRangeOfPoint(994, -937, 40, 100))
{
kv:="Заправка под Vinewood"
}
else if (IsPlayerInRangeOfPoint(1670, -799, 55, 100))
{
kv:="АММО ЛС"
}
else if (IsPlayerInRangeOfPoint(1255, -1575, 12, 100))
{
kv:="АВ ЛС"
}
else if (IsPlayerInRangeOfPoint(1203, -1331, 12, 100))
{
kv:="ASGH"
}
else
{
kv:=getPlayerZone()
}
SendChat("/dep 10-34 " kv " 10-17")
Return



!8::
veh:=isPlayerInAnyVehicle()
if(veh!=0)
{
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos := RegExMatch(A_LoopReadLine, ".*\(.*mdc.*")
if(FoundPos==1)
    Find_Line:=A_LoopReadLine
}
RegExMatch(Find_Line, "mdc ([0-9]+)", mdcID)
sendchat("/mdc " mdcID1)
sleep 1200
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos1 := RegExMatch(A_LoopReadLine, ".*Уровень розыска:.*([0-9]+)")
if(FoundPos1==1)
    Find_Line1:=A_LoopReadLine
}
RegExMatch(Find_Line1, ".*Уровень розыска:.*([0-9]+)", mdcYR)
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos2 := RegExMatch(A_LoopReadLine, ".*Организация: (.*)")
if(FoundPos2==1)
    Find_Line2:=A_LoopReadLine
  }
RegExMatch(Find_Line2, "\[.*\].*Организация: (.*)", mdcORG) ;[06:15:49]  Организация: Неизвестно
sendchat("/r (( ID — " mdcID1 ", уровень розыска: " mdcYR1 ". Организация: " mdcORG1 " ))")
}
return
 

Вложения

  • 12.jpg
    12.jpg
    165.4 KB · Просмотры: 199
код не маленький.
Здесь часть кода так как весь не влез.
AutoHotKey:
#IfWinActive GTA:SA:MP
#include SAMP.ahk
#SingleInstance force



NumpadSub::
SendMessage, 0x50,, 0x4190419,, A
pog:=getClosestPlayerIdCarNotCopFBI()
if(!checkHandles())
   return
dwAddr := getVehiclePointerById(pog)
fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
fVehicleSpeed := (fVehicleSpeed * 100) * 1
fVehicleSpeed := Round(fVehicleSpeed)
if (fSpeedY==0)
   {
   if (fSpeedX>0)
      fVehicleAtan:="1.57"
   else if (fSpeedX>0)
      fVehicleAtan:="-1.57"
   else if (fSpeedX==0)
      {
      AddMessageToChatWindow("Преступник не в машине или стоит на месте")
      return
      }
   }
else
   {
   fVehicledelta := fSpeedY / fSpeedX
   fVehicleAtan:=ATan(fVehicledelta)
   }
if (fSpeedX>0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="южном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="юго-восточном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="восточном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="северо-восточном"
   if (fVehicleAtan>1.1781)
      naprav:="северном"
   }
if (fSpeedX<0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="северном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="северо-западном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="западном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="юго-западном"
   if (fVehicleAtan>1.1781)
      naprav:="южном"
   }
fVehicleid := getTargetVehicleModelIdById(pog)
if (fVehicleid>400 && fVehicleid<611)
   fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
else
   fVehicleModel:="Автомобиля"
kv:=getPlayerZone()
SendChat("/m Водитель, " fVehicleModel " с номерами x" pog "yz, прижмитесь к обочине и остановитесь.")
Sleep 1200
SendChat("/m Или мы откроем огонь на поражение!")
return


F1::
s:=-1
f:=0
AllName:=""
loop, 4
{
    s++
    IdP:=getMyPassengerId(s)
    Skin:=getTargetPlayerSkinIdByPed(getPedById(IdP))
    if((Skin==76 or Skin==265 or Skin==266 or Skin==267 or Skin==280 or Skin==281 or Skin==282 or Skin==283 or Skin==284 or Skin==285 or Skin==288 or Skin==300 or Skin==301 or Skin==302 or Skin==303 or Skin==304 or Skin==305 or Skin==306 or Skin==307 or Skin==308 or Skin==309 or Skin==310 or Skin==311) and IdP!=-1)
    {
        f++
        Name:=getPlayerNameById(IdP)
        RegExMatch(Name, "^([A-Z])[a-z]*_([A-Z][a-z]*)$", NameB)
        if(AllName=="")
            AllName:=NameB1 "." NameB2
        else AllName:=AllName ", " NameB1 "." NameB2
    }
}
if(f==0)
    Output:=""
else if(f==1)
    Output:="Напарник: " AllName "."
else if(f>=2)
    Output:="Напарники: " AllName "."
b:=StrLen(Output)+2
Sendinput {F6}/r 10-4. %Output%{Left %b%}
Return



!2::
o1:=Object()
o1:=GetCoordinates()
targ:=getIdByPed(getTargetPed())
if (targ!=-1)
   {
   point:=readDWORD(hGTA, getTargetPed() + 0x79C)
   slot:=readMem(hGTA, getTargetPed() + 0x718, 1, "byte")
   if (point!=0 and getIdByPed(point)==-1 and slot>1 and slot<8)
      {
      AddMessageToChatWindow(" Нельзя выдавать розыск человеку, который стреляет в вас")
      return
      }
   if getDist(o1,getPedCoordinates(getPedById(targ)))<23
      SendChat("/su " targ " 3 Неподчинение, попытка скрыться")
   }
else
   Sendinput {F6}/su  3 Неподчинение, попытка скрыться{left 33}
Return


NumpadDot::
targ:=getIdByPed(getTargetPed())
if (targ!="-1")
   {
   name:=getPlayerNameById(targ)
   SendChat("/me отстегнул преступника от себя, затем пристегнул к столу")
   sleep 1200
   SendChat("/uncuff " targ)
   sleep 1200
   SendChat("/cuff " targ)
   sleep 1200
   SendChat("/do Одна рука " name " свободна")
   Sleep 1200
   }
else
   {
   AddMessageToChatWindow("Ошибка ( Нет таргета )")
   }
Return

NumpadDiv::
SendMessage, 0x50,, 0x4190419,, A
StringReplace, RPName, Name, _, %A_Space%, All
SendChat("" RPname ", вы задержаны по наводке диспетчера.")
Sleep 1200
Return

!4::
targ:=getClosestPlayerIdUnit()
if (targ!="-1")
{
name:=getPlayerNameById(targ)
SendMessage, 0x50,, 0x4190419,, A
SendChat("/try схватил " name " за ногу")
sleep 1200
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileRead, Chatlog, %File%
check = 0
nick:=getUsername()
if RegExMatch(Chatlog, "s).*" nick "\sсхватил\s" name "\sза\sногу\s.*?\[(.*?)\]", var)
{
if var1 = Удачно
   {
   SendMessage, 0x50,, 0x4190419,, A

   SendChat("/cuff " targ "")
   check = 1
   }
if var1 = Неудачно
   {
   SendMessage, 0x50,, 0x4190419,, A

   StringReplace, lala, name, _, %A_SPACE%, All
   StringReplace, vava, nick, _, %A_SPACE%, All
   SendChat("/do " lala " вырвался из захвата " vava "")
   check = 1
  }
if check not between 1 and 2
  {
   SendMessage, 0x50,, 0x4190419,, A

   AddMessageToChatWindow("Ошибка ( check не 1/2 )")
  }
}
else
{

   SendMessage, 0x50,, 0x4190419,, A

   AddMessageToChatWindow("Ошибка ( не нашел текст /try )")
}
}
else
{
AddMessageToChatWindow("Цель слишком далеко или это полицейский/ФБР")
}
Return

F9::
SendMessage, 0x50,, 0x4190419,, A
pog:=getClosestPlayerIdCarNotCopFBI()
if(!checkHandles())
   return
dwAddr := getVehiclePointerById(pog)
fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
fVehicleSpeed := (fVehicleSpeed * 100) * 1
fVehicleSpeed := Round(fVehicleSpeed)
if (fSpeedY==0)
   {
   if (fSpeedX>0)
      fVehicleAtan:="1.57"
   else if (fSpeedX>0)
      fVehicleAtan:="-1.57"
   else if (fSpeedX==0)
      {
      AddMessageToChatWindow("Преступник не в машине или стоит на месте")
      return
      }
   }
else
   {
   fVehicledelta := fSpeedY / fSpeedX
   fVehicleAtan:=ATan(fVehicledelta)
   }
if (fSpeedX>0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="южном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="юго-восточном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="восточном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="северо-восточном"
   if (fVehicleAtan>1.1781)
      naprav:="северном"
   }
if (fSpeedX<0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="северном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="северо-западном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="западном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="юго-западном"
   if (fVehicleAtan>1.1781)
      naprav:="южном"
   }
fVehicleid := getTargetVehicleModelIdById(pog)
if (fVehicleid>400 && fVehicleid<611)
   fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
else
   fVehicleModel:="Автомобиль"
kv:=getPlayerZone()
SendChat("/r 10-16 " fVehicleModel " с номерами x" pog "yz, движущийся в " kv "")
Sleep 1200
SendChat("/r со скоростью " fVehicleSpeed " км/ч в " naprav " направлении.")
return


$~Enter::
SendMessage, 0x50,, 0x4190419,, A
if(!checkHandles())
   return
LastLine:=GetChatText()
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if (lastLine==-1)
   return
if RegExMatch(lastLine, "^\/zv\s(\d+)$", id)
   {
   if (id1>999)
      {
      addChatMessageWithColor("AFAFAF", " Вы указали некорректный id")
      return
      }
   NameWantedPlayer:=getPlayerNameById(id1)
   if (NameWantedPlayer=="")
      {
      addChatMessageWithColor("AFAFAF", " Игрок оффлайн")
      return
      }
   Wanted:=""
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\<\<\sОфицер\s.*?\sарестовал\s" NameWantedPlayer) or RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Clear\]\s[A-Za-z0-9_]*?\sудалил\sиз\sрозыскиваемых\s" NameWantedPlayer))
         ResetLines:=NumberOfLines
      }
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (NumberOfLines>ResetLines and RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Wanted\s\d:\s" NameWantedPlayer "\]\s\[.*?:\s[A-Za-z0-9_]*?\]\s\[(.*?)\]$", su))
         If (not RegExMatch(Wanted, su1))
            if (Wanted!="")
               Wanted:=Wanted ", " su1
            else
               Wanted:=su1
      }
   if (Wanted=="")
      Wanted:="Нет данных"
   addChatMessageWithColor("FFFF00", " " NameWantedPlayer " совершил(а) " Wanted)
   return
   }
if (RegExMatch(lastLine, "^\/zv$") or RegExMatch(lastLine, "^\/zv\s.+$"))
   {
   addChatMessageWithColor("FFFFFF", " Введите: /zv [id игрока]")
   return
   }
if RegExMatch(lastLine, "^\/zap\s(.+)$", id)
   {
   StrokaNovogoZapreta:=""
   StrokaNikovZapret:=""
   KolvoId:=0
   Soderjimoe:=id1
   PatternSoderjimogo:="(\d+)\s(\D+)"
   while RegExMatch(Soderjimoe, PatternSoderjimogo, id)
      {
      KolvoId:=KolvoId+1
      PatternSoderjimogo:="(\d+)\s" PatternSoderjimogo
      NickName%A_Index%:=id1
      if (A_Index==1)
         kpz:=id2
      }
   if (KolvoId==0)
      {
      addChatMessageWithColor("FFFFFF", " Введите: /zap [id игроков через пробел] [место заключения]")
      return
      }
   Loop %KolvoId%
      {
      IndexId:=KolvoId+1-A_Index
      IdWantedPlayer:= NickName%IndexId%
      NameWantedPlayer:=getPlayerNameById(IdWantedPlayer)
      if (RegExMatch(NameWantedPlayer, "_.+?_") or RegExMatch(NameWantedPlayer, "\d+"))
         {
         StringReplace, NameWantedPlayer, NameWantedPlayer, _, %A_SPACE%, All
         RegExMatch(NameWantedPlayer, "[A-Za-z0-9].*[A-Za-z0-9]", NameWantedPlayer)
         NameWantedPlayer = "%NameWantedPlayer%"
         }
      else if RegExMatch(NameWantedPlayer, "([A-Z][a-z]*?)_+([A-Z][a-z]*?)$", idf)
         NameWantedPlayer = %idf1% %idf2%
      else
         {
         StringReplace, NameWantedPlayer, NameWantedPlayer, _, %A_SPACE%, All
         if (NameWantedPlayer!="")
            NameWantedPlayer = "%NameWantedPlayer%"
         }
      if (StrokaNikovZapret!="")
         if (StrLen(StrokaNikovZapret NameWantedPlayer kpz)<69)
            StrokaNikovZapret:=StrokaNikovZapret ", " NameWantedPlayer
         else if (StrokaNovogoZapreta=="")
            StrokaNovogoZapreta:=IdWantedPlayer
         else
            StrokaNovogoZapreta:=StrokaNovogoZapreta " " IdWantedPlayer
      else
         StrokaNikovZapret:= NameWantedPlayer
      }
   if (StrokaNikovZapret=="")
      {
      if (KolvoId!=1)
         addChatMessageWithColor("AFAFAF", " Игроки оффлайн")
      else
         addChatMessageWithColor("AFAFAF", " Игрок оффлайн")
      return
      }
   sleep 1200
   sendinput, {F6}/dep 10-14 %StrokaNikovZapret% — %kpz%{enter}
   if (StrokaNovogoZapreta!="")
      {
      addChatMessageWithColor("FFFF00", " Внимание! Некоторые игроки не были запрещены. Команда для их запрета скопирована в буфер обмена.")
      clipboard:= "/zap " StrokaNovogoZapreta " " kpz
      }
   return
   }
if RegExMatch(lastLine, "^\/zap$")
   {
   addChatMessageWithColor("FFFFFF", " Введите: /zap [id игроков через пробел] [место заключения]")
   return
   }
if RegExMatch(lastLine, "^\/rad\s(\d+)$", rank)
   {
   sleep 1200
   name:=getPlayerNameById(rank1)
   nick:=getUsername()
   if (isTargetInAnyVehiclebyIdMod(rank1)=="-1" and nick!=name)
      {
      AddMessageToChatWindow("Цель не в транспортном средстве или слишком далеко")
      return
      }
   if (nick==name)
      {
      if (isPlayerDriverMod()=="-1")
         {
         AddMessageToChatWindow("Вы не в транспортном средстве")
         return
         }
      SendChat("/me посмотрел на спидометр")
      sleep 1200
      dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
      fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
      fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
      fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
      fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
      fVehicleSpeed := (fVehicleSpeed * 100) * 1
      fVehicleSpeed := Round(fVehicleSpeed)
      SendChat("/do Скорость автомобиля равна " fVehicleSpeed " км/ч")
      }
   else
      {
      dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
      dwVal := readDWORD(hGTA, dwAddr + ADDR_VEHICLE_DRIVER)
      dwPedPointer := getPedById(rank1)
      dwVehiclePointer := getVehiclePointerByPed(dwPedPointer)
      dwVali := readDWORD(hGTA, dwVehiclePointer + ADDR_VEHICLE_DRIVER)
      if (dwVal==dwVali and isPlayerDriverMod()!="-1")
         {
         SendChat("/me посмотрел на спидометр")
         sleep 1200
         fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
         fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
         fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
         fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
         fVehicleSpeed := (fVehicleSpeed * 100) * 1
         fVehicleSpeed := Round(fVehicleSpeed)
         SendChat("/do Скорость равна " fVehicleSpeed " км/ч")
         }
      else
         {
         fVehicleid := getTargetVehicleModelIdById(rank1)
         if (fVehicleid>400 && fVehicleid<611)
            fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
         else
            fVehicleModel:="автомобиль"
         SendChat("/me включил полицейский радар и направил на " fVehicleModel)
         sleep 1200
         o1:=Object()
         o1:=GetCoordinates()
         if (getDist(o1,getPedCoordinates(getPedById(rank1)))>30)
            SendChat("/do Радар не смог определить скорость цели")
         else
            {
            dwAddr := getVehiclePointerById(rank1)
            fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
            fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
            fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
            fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
            fVehicleSpeed := (fVehicleSpeed * 100) * 1
            fVehicleSpeed := Round(fVehicleSpeed)
            SendChat("/do Показания прибора равны " fVehicleSpeed " км/ч")
            }
         }
      }
   return
   }
if RegExMatch(lastLine, "^\/rad$")
   {
   addChatMessageWithColor("FFFFFF", " Введите: /rad [id игрока]")
   return
   }
Return

!5::
if (isPlayerDriverMod()==-1)
   {
   its:=getClosestPlayerIdUnitByCar()
   ModellCar:=getTargetVehicleModelIdById(its)
   name:=getPlayerNameById(its)
   StringReplace, lala, name, _, %A_SPACE%, All
   if (getTargetVehicleModelNameById(its)="PoliceCar" or getTargetVehicleModelNameById(its)=="Enforcer" or ModellCar==497)
      {
      SendChat("/me вытащил " name " из машины")
      Sleep 1200
      }
   else if (getTargetVehicleModelNameById(its)=="HPV1000")
      {
      SendChat("/me вытащил " name " c мотоцикла")
      Sleep 1200
      }
   else if (ModellCar==448 or ModellCar==461 or ModellCar==462 or ModellCar==462 or ModellCar==463 or ModellCar==468 or ModellCar==471 or ModellCar==481 or ModellCar==509 or ModellCar==510 or ModellCar==521 or ModellCar==522 or ModellCar==581 or ModellCar==586)
      {
      SendChat("/me скрутил " name)
      Sleep 1200
      SendChat("/cuff " its)
      Sleep 1200
      nick:=getUsername()
      StringReplace, papa, nick, _, %A_SPACE%, All
      SendChat("/do " papa " вытаскивает " lala " с мото")
      Sleep 1200
      }
   else
      {
      SendChat("/me разбил стекло автомобиля и скрутил " name)
      Sleep 1200
      SendChat("/cuff " its)
      Sleep 1200
      nick:=getUsername()
      StringReplace, papa, nick, _, %A_SPACE%, All
      SendChat("/do " papa " вытаскивает " lala " из машины")
      Sleep 1200
      }
   SendChat("/ceject " its)
   }
return

F2::
SendChat("/s Стой, стрелять буду!")
sleep 1000
return



!1::
targ:=getIdByPed(getTargetPed())
if(targ!="-1")
    SendChat("/cuff " targ)
else
{
    targ:=getClosestPlayerIdUnitCuff()
    if(targ!=-1)
        SendChat("/cuff " targ)
    else
    {
        addChatMessageWithColor("AFAFAF", " Рядом с вами никого нет")
        Return
    }
}
sleep 1200
Return

getClosestPlayerIdUnitCuff() {
    dist := 8
    p := getStreamedInPlayersInfo()
    if(!p)
        return -1
    lpos := getCoordinates()
    if(!lpos)
        return -1
    id := -1
    For i, o in p
    {
if (getTargetPlayerSkinIdById(i)!="76") and (getTargetPlayerSkinIdById(i)!="265") and (getTargetPlayerSkinIdById(i)!="266") and (getTargetPlayerSkinIdById(i)!="267") and (getTargetPlayerSkinIdById(i)!="280") and (getTargetPlayerSkinIdById(i)!="281") and (getTargetPlayerSkinIdById(i)!="282") and (getTargetPlayerSkinIdById(i)!="283") and (getTargetPlayerSkinIdById(i)!="284") and (getTargetPlayerSkinIdById(i)!="285") and (getTargetPlayerSkinIdById(i)!="288") and (getTargetPlayerSkinIdById(i)!="306") and (getTargetPlayerSkinIdById(i)!="307") and (getTargetPlayerSkinIdById(i)!="309") and (getTargetPlayerSkinIdById(i)!="141") and (getTargetPlayerSkinIdById(i)!="163") and (getTargetPlayerSkinIdById(i)!="164") and (getTargetPlayerSkinIdById(i)!="165") and (getTargetPlayerSkinIdById(i)!="166") and (getTargetPlayerSkinIdById(i)!="286")
       {
        t:=getDist(lpos,o.POS)
        if(t<dist)
        {
            dist := t
            id := i
        }
    }
}
    return id
}
Return


Numpad2::
SendChat("/lock")
sleep 1200
return

Numpad3::
SendChat("/time")
sleep 1200
return

numpad4::
SendMessage, 0x50,, 0x4190419,, A
Random rand, 1, 4
if (rand==1)
   SendChat("/me затащил преступника в транспортное средство")
if (rand==2)
   SendChat("/me посадил преступника в транспортное средство")
if (rand==3)
   SendChat("/me помог преступнику сесть в транспортное средство")
if (rand==4)
   SendChat("/me запихнул преступника в транспортное средство")
sendinput, {F6}/cput{space}
return

numpad5::
SendMessage, 0x50,, 0x4190419,, A
Random rand, 1, 2
if (rand==1)
   SendChat("/me открыл дверь и вытащил преступника из транспортного средства")
if (rand==2)
   SendChat("/me открыл дверь и высадил преступника из транспортного средства")


sendinput, {F6}/ceject{space}
return


Numpad6::
SendMessage, 0x50,, 0x4190419,, A
targ:=getIdByPed(getTargetPed())
if (targ!="-1")
   {
   name:=getPlayerNameById(targ)
   SendChat("/me пристегнул " name " наручниками к своей левой руке")
   sleep 1200
   SendChat("/follow " targ)
   }
else
   AddMessageToChatWindow("Ошибка ( Нет таргета )")
Return

Numpad7::
SendChat("/clist 12")
sleep 1200
Return

Numpad0::
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
IfNotInString, Chatlog, помечено на карте красной меткой. Дистанция
{
SendChat("/gps 4 4")
sleep 1200
SendChat("/gps")
while(isDialogOpen()==0)
sleep 5
Sendinput {Escape}
sleep 1200
}
NameCall:=""
s:=0
f:=0
rr:=0
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
s++
if RegExMatch(A_LoopReadLine, "^\[..:..:..]\s\sДиспетчер:\sвызов\sот\s(.*)\[(\d+)\]\.\sПримерное\sрастояние\s.*", Challenge)
{
rr:=1
NameCall:=Challenge1
IdCall:=Challenge2
}
}
if(rr==0)
{
AddChatMessage("{AFAFAF} Вызовов не поступало")
Return
}
SendChat("/service ac cop " IdCall)
sleep 1200
Square:=getMarkZone()
if !RegExMatch(NameCall, "^[A-Z][a-z]*_[A-Z][a-z]*$")
NameCall:="некого «" NameCall "»"
StringReplace, NameCall, NameCall, _, %A_SPACE%, All
if(Square=="Unbekannt" or isPlayerDriverMod()==-1)
{
AddChatMessage("{AFAFAF} Ошибка")
Return
}
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
f++
if(f>s and RegExMatch(A_LoopReadLine, "^\[..:..:..\]\s\sДиспетчер:\sвызов\sот\sэтого\sчеловека\sне\sпоступал$"))
Return
}
s:=-1
f:=0
AllName:=""
loop, 4
{
s++
IdP:=getMyPassengerId(s)
Skin:=getTargetPlayerSkinIdByPed(getPedById(IdP))
if((Skin==76 or Skin==265 or Skin==266 or Skin==267 or Skin==280 or Skin==281 or Skin==282 or Skin==283 or Skin==284 or Skin==285 or Skin==288 or Skin==300 or Skin==301 or Skin==302 or Skin==303 or Skin==304 or Skin==305 or Skin==306 or Skin==307 or Skin==308 or Skin==309 or Skin==310 or Skin==311) and IdP!=-1)
{
f++
Name:=getPlayerNameById(IdP)
RegExMatch(Name, "^([A-Z])[a-z]*_([A-Z][a-z]*)$", NameB)
if(AllName=="")
AllName:=NameB1 "." NameB2
else AllName:=AllName ", " NameB1 "." NameB2
}
}
mn:=""
if(f==0)
Output:=""
else
{
mn:="и"
if(f==1)
Output:="Напарник: " AllName "."
else if(f>=2)
Output:="Напарники: " AllName "."
}
String:="Принял" mn " вызов от " NameCall " в " Square "."
Number:=StrLen(String)+StrLen(Output)
if(Number<=79)
SendChat("/r " String " " Output)
else
{
SendChat("/r " String)
sleep 1200
SendChat("/r " Output)
}
Return


!F3::
SendMessage, 0x50,, 0x4190419,, A
if (IsPlayerInRangeOfPoint(2275, 2459, 10.3, 100))
{
kv:="Гараж ЛВПД"
}
else if (IsPlayerInRangeOfPoint(2173, 1677, 10.3, 100))
{
kv:="Казино Калигула"
}
else if (IsPlayerInRangeOfPoint(2039, 1008, 10.2, 100))
{
kv:="Казино 4 дракона"
}
else if (IsPlayerInRangeOfPoint(2156, 938, 10.3, 100))
{
kv:="АММО ЛВ"
}
else if (IsPlayerInRangeOfPoint(2453, 1347, 10.3, 100))
{
kv:="АВ ЛВ"
}
else if (IsPlayerInRangeOfPoint(2543, 2776, 10.4, 100))
{
kv:="Завод КАСС"
}
else if (IsPlayerInRangeOfPoint(1487, 2782, 10.4, 100))
{
kv:="Гольф клуб"
}
else if (IsPlayerInRangeOfPoint(1608, 1839, 10.4, 100))
{
kv:="Больница ЛВ"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="Холм ЛВА"
}
else if (IsPlayerInRangeOfPoint(330, 1924, 17.2, 100))
{
kv:="Главный склад ЛВА"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="КПП ЛВА"
}
else if (IsPlayerInRangeOfPoint(213, 1887, 14.1, 100))
{
kv:="Бункер ЛВА"
}
else if (IsPlayerInRangeOfPoint(2094, 2477, 10.4, 100))
{
kv:="Спортзал ЛВ"
}
else if (IsPlayerInRangeOfPoint(1838, 801, 10.4, 100))
{
kv:="Похоронное бюро"
}
else if (IsPlayerInRangeOfPoint(1156, 833, 10.3, 100))
{
kv:="Карьер"
}
else if (IsPlayerInRangeOfPoint(179, 1165, 14.3, 100))
{
kv:="Закуска ФК"
}
else if (IsPlayerInRangeOfPoint(287, 1411, 9.9, 100))
{
kv:="Сетка ЛВА" 
}
else if (IsPlayerInRangeOfPoint(-86, 1371, 9.8, 100))
{
kv:="Бар НЛО"
}
else if (IsPlayerInRangeOfPoint(-318, 1057, 10.3, 100))
{
kv:="Больница ФК"
}
else if (IsPlayerInRangeOfPoint(-977, 1307, 34.8, 100)) or (IsPlayerInRangeOfPoint(-1250, 996, 43.5, 100))
{
kv:="Мост СФ-ЛВ"
}
else if (IsPlayerInRangeOfPoint(985, 1711, 8.7, 100))
{
kv:="ЧОП Медведь"
}
else if (IsPlayerInRangeOfPoint(2203, -2243, 13, 100))
{
kv:="Грузчики"
}
else if (IsPlayerInRangeOfPoint(2709, -2404, 13, 100))
{
kv:="Порт ЛС"
}
else if (IsPlayerInRangeOfPoint(87, -1532, 5, 100))
{
kv:="Площадь мэрии"
}
else if (IsPlayerInRangeOfPoint(1934, 196, 32, 100))
{
kv:="Ферма 4"
}
else if (IsPlayerInRangeOfPoint(24, 19, 2, 100))
{
kv:="Ферма 3"
}
else if (IsPlayerInRangeOfPoint(-147, 15, 2, 100))
{
kv:="Ферма 1"
}
else if (IsPlayerInRangeOfPoint(717, -1675, 10, 100))
{
kv:="Алкозавод"
}
else if (IsPlayerInRangeOfPoint(-105, -1156, 2, 100))
{
kv:="Заправка возле фермы 0"
}
else if (IsPlayerInRangeOfPoint(-308, -1403, 13, 100))
{
kv:="Ферма 0"
}
else if (IsPlayerInRangeOfPoint(1201, -935, 42, 100))
{
kv:="Закуска под Vinewood"
}
else if (IsPlayerInRangeOfPoint(994, -937, 40, 100))
{
kv:="Заправка под Vinewood"
}
else if (IsPlayerInRangeOfPoint(1670, -799, 55, 100))
{
kv:="АММО ЛС"
}
else if (IsPlayerInRangeOfPoint(1255, -1575, 12, 100))
{
kv:="АВ ЛС"
}
else if (IsPlayerInRangeOfPoint(1203, -1331, 12, 100))
{
kv:="ASGH"
}
else
{
kv:=getPlayerZone()
}
SendChat("/r 10-34 " kv "")
Return

!9::
SendMessage, 0x50,, 0x4190419,, A
if (IsPlayerInRangeOfPoint(2275, 2459, 10.3, 100))
{
kv:="Гараж ЛВПД"
}
else if (IsPlayerInRangeOfPoint(2173, 1677, 10.3, 100))
{
kv:="Казино Калигула"
}
else if (IsPlayerInRangeOfPoint(2039, 1008, 10.2, 100))
{
kv:="Казино 4 дракона"
}
else if (IsPlayerInRangeOfPoint(2156, 938, 10.3, 100))
{
kv:="АММО ЛВ"
}
else if (IsPlayerInRangeOfPoint(2453, 1347, 10.3, 100))
{
kv:="АВ ЛВ"
}
else if (IsPlayerInRangeOfPoint(2543, 2776, 10.4, 100))
{
kv:="Завод КАСС"
}
else if (IsPlayerInRangeOfPoint(1487, 2782, 10.4, 100))
{
kv:="Гольф клуб"
}
else if (IsPlayerInRangeOfPoint(1608, 1839, 10.4, 100))
{
kv:="Больница ЛВ"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="Холм ЛВa"
}
else if (IsPlayerInRangeOfPoint(330, 1924, 17.2, 100))
{
kv:="Главный склад ЛВa"
}
else if (IsPlayerInRangeOfPoint(405, 1658, 34.8, 100))
{
kv:="КПП ЛВa"
}
else if (IsPlayerInRangeOfPoint(213, 1887, 14.1, 100))
{
kv:="Бункер ЛВa"
}
else if (IsPlayerInRangeOfPoint(2094, 2477, 10.4, 100))
{
kv:="Спортзал ЛВ"
}
else if (IsPlayerInRangeOfPoint(1838, 801, 10.4, 100))
{
kv:="Похоронное бюро"
}
else if (IsPlayerInRangeOfPoint(1156, 833, 10.3, 100))
{
kv:="Карьер"
}
else if (IsPlayerInRangeOfPoint(179, 1165, 14.3, 100))
{
kv:="Закуска ФК"
}
else if (IsPlayerInRangeOfPoint(287, 1411, 9.9, 100))
{
kv:="Сетка ЛВa" 
}
else if (IsPlayerInRangeOfPoint(-86, 1371, 9.8, 100))
{
kv:="Бар НЛО"
}
else if (IsPlayerInRangeOfPoint(-318, 1057, 10.3, 100))
{
kv:="Больница ФК"
}
else if (IsPlayerInRangeOfPoint(-977, 1307, 34.8, 100)) or (IsPlayerInRangeOfPoint(-1250, 996, 43.5, 100))
{
kv:="Мост СФ-ЛВ"
}
else if (IsPlayerInRangeOfPoint(985, 1711, 8.7, 100))
{
kv:="ЧОП Медведь"
}
else if (IsPlayerInRangeOfPoint(2203, -2243, 13, 100))
{
kv:="Грузчики"
}
else if (IsPlayerInRangeOfPoint(2709, -2404, 13, 100))
{
kv:="Порт ЛС"
}
else if (IsPlayerInRangeOfPoint(87, -1532, 5, 100))
{
kv:="Площадь мэрии"
}
else if (IsPlayerInRangeOfPoint(1934, 196, 32, 100))
{
kv:="Ферма 4"
}
else if (IsPlayerInRangeOfPoint(24, 19, 2, 100))
{
kv:="Ферма 3"
}
else if (IsPlayerInRangeOfPoint(-147, 15, 2, 100))
{
kv:="Ферма 1"
}
else if (IsPlayerInRangeOfPoint(717, -1675, 10, 100))
{
kv:="Алкозавод"
}
else if (IsPlayerInRangeOfPoint(-105, -1156, 2, 100))
{
kv:="Заправка возле фермы 0"
}
else if (IsPlayerInRangeOfPoint(-308, -1403, 13, 100))
{
kv:="Ферма 0"
}
else if (IsPlayerInRangeOfPoint(1201, -935, 42, 100))
{
kv:="Закуска под Vinewood"
}
else if (IsPlayerInRangeOfPoint(994, -937, 40, 100))
{
kv:="Заправка под Vinewood"
}
else if (IsPlayerInRangeOfPoint(1670, -799, 55, 100))
{
kv:="АММО ЛС"
}
else if (IsPlayerInRangeOfPoint(1255, -1575, 12, 100))
{
kv:="АВ ЛС"
}
else if (IsPlayerInRangeOfPoint(1203, -1331, 12, 100))
{
kv:="ASGH"
}
else
{
kv:=getPlayerZone()
}
SendChat("/dep 10-34 " kv " 10-17")
Return



!8::
veh:=isPlayerInAnyVehicle()
if(veh!=0)
{
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos := RegExMatch(A_LoopReadLine, ".*\(.*mdc.*")
if(FoundPos==1)
    Find_Line:=A_LoopReadLine
}
RegExMatch(Find_Line, "mdc ([0-9]+)", mdcID)
sendchat("/mdc " mdcID1)
sleep 1200
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos1 := RegExMatch(A_LoopReadLine, ".*Уровень розыска:.*([0-9]+)")
if(FoundPos1==1)
    Find_Line1:=A_LoopReadLine
}
RegExMatch(Find_Line1, ".*Уровень розыска:.*([0-9]+)", mdcYR)
Loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
FoundPos2 := RegExMatch(A_LoopReadLine, ".*Организация: (.*)")
if(FoundPos2==1)
    Find_Line2:=A_LoopReadLine
  }
RegExMatch(Find_Line2, "\[.*\].*Организация: (.*)", mdcORG) ;[06:15:49]  Организация: Неизвестно
sendchat("/r (( ID — " mdcID1 ", уровень розыска: " mdcYR1 ". Организация: " mdcORG1 " ))")
}
return
Показывай ошибку теперь
 
Ну, давай почитаем, что пишет компилятор:

Вызов несуществующей функции -- getClosestPlayerIdCarNotCopFBI()
Это означает, что даже в UDF такой функции нет.
В свою очередь, это означает, что функция была сделана автором скрипта, а UDF'a от него у тебя нет.
Учись читать ошибки, в AHK это делать проще простого.
 
  • Нравится
Реакции: Anton_Hamond

Anton_Hamond

Новичок
13
2
Ну, давай почитаем, что пишет компилятор:


Это означает, что даже в UDF такой функции нет.
В свою очередь, это означает, что функция была сделана автором скрипта, а UDF'a от него у тебя нет.
Учись читать ошибки, в AHK это делать проще простого.
Поспрашиваю у друзей мб у них есть. Спасибо за помощь.
 

meowprd

Тот самый Котовский
Проверенный
1,280
712
Ищу адрес/метод для чтения текста из gametext стиля номер 1
Пробовал метод:
AutoHotKey:
dwAddress := dwSAMP + 0x13BEFC
dwAddress := readDWORD(hGTA, dwAddress)
gameText := readString(hGTA, dwAddress, 256)
Ловит только стиль номер 3, как я понял
 

NOOBPAndA

Участник
101
12
Дайте нормалькую ссылку на скачивание редактора SciTE4AutoHotKey, а то при запуске с редактора скрипт не запускается ( но сам скрипт рабочий )
40583
 

Samp_Love_Ahk_Lua_Cleo

Участник
147
12
как сделать чтобы показывало ближайший ид или информацию о игроке наводишь потом нажмаешь и когда стрелка пишет в чат инфу а при зачитании к примеру ALt+z пишет /sms и id тот ? ahk
 

degrando

Известный
362
127
как сделать чтобы показывало ближайший ид или информацию о игроке наводишь потом нажмаешь и когда стрелка пишет в чат инфу а при зачитании к примеру ALt+z пишет /sms и id тот ? ahk
AutoHotKey:
E::
}
Sleep 80
id := []
sleep 20
id := getIdByPed(getTargetPed())
if id > -1
{
    nick := getPlayerNameById(id)
    AntiCrash()
addchatmessage("{FFFFFF}Вы навели на: {FF8000}" nick "[" id "]")
}
Else
{
addChatMessageEx("{F6789A}", "{FFFFFF}Игрок не выбран.")
}
Return