Advertisement
DANGER_Hidden

vw_inspect.inc

Jan 27th, 2017
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 25.41 KB | None | 0 0
  1. /*
  2.  *            vw_inspection v1.1
  3.  *       (c) Copyright 2017-2018 by Hidden -=DANGER=-
  4.  *
  5.  * @author    : DANGER1979 (danger1979@mail.ru)
  6.  * @date      : 26.01.2017
  7.  * @update    : 27.01.2017
  8.  *
  9.  * This file is provided as is (no warranties).
  10.  *
  11.  */
  12.  
  13. //ОТКАЗЫВАЕМСЯ ОТ использования OnPlayerUpdate
  14.  
  15. #include <a_samp>
  16.  
  17. #define PlayerConnect   5
  18. #define PlayerDisconnect    6
  19. #define PlayerSpawn 7
  20. #define PlayerDeath 8
  21. #define VehicleSpawn    9
  22. #define VehicleDeath    10
  23. #define PlayerTxt   11
  24. #define PlayerCommandText   12
  25. #define PlayerRequestClass  13
  26. #define PlayerEnterVehicle  14
  27. #define PlayerExitVehicle   15
  28. #define PlayerStateChange   16
  29. #define PlayerEnterCheckpoint   17
  30. #define PlayerLeaveCheckpoint   18
  31. #define PlayerEnterRaceCheckpoint   19
  32. #define PlayerLeaveRaceCheckpoint   20
  33. #define RconCommand 21
  34. #define PlayerRequestSpawn  22
  35. #define ObjectMoved 23
  36. #define PlayerObjectMoved   24
  37. #define PlayerPickUpPickup  25
  38. #define VehicleMod  26
  39. #define EnterExitModShop    27
  40. #define VehiclePaintjob 28
  41. #define VehicleRespray  29
  42. #define VehicleDamageStatusUpdate   30
  43. #define UnoccupiedVehicleUpdate 31
  44. #define PlayerSelectedMenuRow   32
  45. #define PlayerExitedMenu    33
  46. #define PlayerInteriorChange    34
  47. #define PlayerKeyStateChange    35
  48. #define RconLoginAttempt    36
  49. #define PlayerUpdate    37
  50. #define PlayerStreamIn  38
  51. #define PlayerStreamOut 39
  52. #define VehicleStreamIn 40
  53. #define VehicleStreamOut    41
  54. #define ActorStreamIn   42
  55. #define ActorStreamOut  43
  56. #define DialogResponse  44
  57. #define PlayerTakeDamage    45
  58. #define PlayerGiveDamage    46
  59. #define PlayerGiveDamageActor   47
  60. #define PlayerClickMap  48
  61. #define PlayerClickTextDraw 49
  62. #define PlayerClickPlayerTextDraw   50
  63. #define IncomingConnection  51
  64. #define TrailerUpdate   52
  65. #define VehicleSirenStateChange 53
  66. #define PlayerClickPlayer   54
  67. #define PlayerEditObject    55
  68. #define PlayerEditAttachedObject    56
  69. #define PlayerWeaponShot    57
  70. #define PlayerSelectObject  59
  71. //массив кто вызвал OnPlayerInfoChange
  72.  
  73.  
  74. public OnFilterScriptInit()
  75. {
  76.     print("OnFilterScriptInit: vw_inspect");
  77.     print("_____________________________________________");
  78.     print(" ");
  79.     return 1;
  80. }
  81.  
  82. public OnFilterScriptExit()
  83. {
  84.     print("OnFilterScriptExit: vw_inspect");
  85.     print("_____________________________________________");
  86.     print(" ");
  87.     return 1;
  88. }
  89.  
  90.  
  91. stock PlayerName(playerid)
  92. {
  93.     new name[MAX_PLAYER_NAME];
  94.     GetPlayerName(playerid, name, sizeof(name));
  95.     return name;
  96. }
  97. /*
  98. #define MAX_CALLBACK    57
  99. new counter[MAX_CALLBACK];//счётчик входов в данную ф-ию
  100.  
  101.  
  102. stock GetNameCallback(callback)
  103. {
  104.     new Message[32];
  105.     switch(callback)
  106.     {
  107.         case    5: Message =    "PlayerConnect";
  108.         case    6: Message =    "PlayerDisconnect";
  109.         case    7: Message =    "PlayerSpawn";
  110.         case    8: Message =    "PlayerDeath";
  111.         case    9: Message =    "VehicleSpawn";
  112.         case    10: Message =   "VehicleDeath";
  113.         case    11: Message =   "PlayerTxt";
  114.         case    12: Message =   "PlayerCommandText";
  115.         case    13: Message =   "PlayerRequestClass";
  116.         case    14: Message =   "PlayerEnterVehicle";
  117.         case    15: Message =   "PlayerExitVehicle";
  118.         case    16: Message =   "PlayerStateChange";
  119.         case    17: Message =   "PlayerEnterCheckpoint";
  120.         case    18: Message =   "PlayerLeaveCheckpoint";
  121.         case    19: Message =   "PlayerEnterRaceCheckpoint";
  122.         case    20: Message =   "PlayerLeaveRaceCheckpoint";
  123.         case    21: Message =   "RconCommand";
  124.         case    22: Message =   "PlayerRequestSpawn";
  125.         case    23: Message =   "ObjectMoved";
  126.         case    24: Message =   "PlayerObjectMoved";
  127.         case    25: Message =   "PlayerPickUpPickup";
  128.         case    26: Message =   "VehicleMod";
  129.         case    27: Message =   "EnterExitModShop";
  130.         case    28: Message =   "VehiclePaintjob";
  131.         case    29: Message =   "VehicleRespray";
  132.         case    30: Message =   "VehicleDamageStatusUpdate";
  133.         case    31: Message =   "UnoccupiedVehicleUpdate";
  134.         case    32: Message =   "PlayerSelectedMenuRow";
  135.         case    33: Message =   "PlayerExitedMenu";
  136.         case    34: Message =   "PlayerInteriorChange";
  137.         case    35: Message =   "PlayerKeyStateChange";
  138.         case    36: Message =   "RconLoginAttempt";
  139.         case    37: Message =   "PlayerUpdate";
  140.         case    38: Message =   "PlayerStreamIn";
  141.         case    39: Message =   "PlayerStreamOut";
  142.         case    40: Message =   "VehicleStreamIn";
  143.         case    41: Message =   "VehicleStreamOut";
  144.         case    42: Message =   "ActorStreamIn";
  145.         case    43: Message =   "ActorStreamOut";
  146.         case    44: Message =   "DialogResponse";
  147.         case    45: Message =   "PlayerTakeDamage";
  148.         case    46: Message =   "PlayerGiveDamage";
  149.         case    47: Message =   "PlayerGiveDamageActor";
  150.         case    48: Message =   "PlayerClickMap";
  151.         case    49: Message =   "PlayerClickTextDraw";
  152.         case    50: Message =   "PlayerClickPlayerTextDraw";
  153.         case    51: Message =   "IncomingConnection";
  154.         case    52: Message =   "TrailerUpdate";
  155.         case    53: Message =   "VehicleSirenStateChange";
  156.         case    54: Message =   "PlayerClickPlayer";
  157.         case    55: Message =   "PlayerEditObject";
  158.         case    56: Message =   "PlayerEditAttachedObject";
  159.         case    57: Message =   "PlayerWeaponShot";
  160.         case    58: Message =   "PlayerSelectObject";
  161.         default:    Message =   "Unknown";
  162.     }
  163.     return Message;
  164. }
  165.  
  166. //Вызывается каждый раз когда вызывается любой из пабликов, который меняет массив PlayerInfo
  167. forward OnPlayerInfoChange(playerid, callback);
  168. public OnPlayerInfoChange(playerid, callback)
  169. //Данная процедура обрабатывается при изменении информации о игроке.
  170. {
  171.     counter[callback]++;
  172.  
  173.     if( callback == UnoccupiedVehicleUpdate || //callback == PlayerKeyStateChange || callback == TrailerUpdate ||
  174.         callback == PlayerStreamIn || callback == PlayerStreamOut ||
  175.         callback == VehicleStreamIn || callback == VehicleStreamOut)
  176.     {
  177.         return 1;
  178.     }
  179.  
  180.     //ИНФОРМИРОВАНИЕ
  181.     new str[137+32+3+32+2+6];
  182.     format(str, sizeof(str),
  183.         "Information about player {0080FF}%s{FFFFFF}[%d] has changed. Callback: {0080FF}%s{FFFFFF}[%d] call: {00FF00}%d",
  184.         PlayerName(playerid), playerid, GetNameCallback(callback), callback, counter[callback]);
  185.     SendClientMessage(playerid, -1, str);
  186.     //print(str);
  187.     return 1;
  188. }
  189. */
  190. //==============================================================================
  191.  
  192. public OnPlayerConnect(playerid)
  193. {
  194.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerConnect);
  195.     return 0;
  196. }
  197.  
  198. public OnPlayerRequestClass(playerid, classid)
  199. {  
  200.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerRequestClass);
  201.     return 0;
  202. }
  203.  
  204. public OnPlayerRequestSpawn(playerid)
  205. {  
  206.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerRequestSpawn);
  207.     return 1;
  208. }
  209.  
  210. public OnPlayerDisconnect(playerid, reason)
  211. {
  212.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerDisconnect);
  213.     return 0;
  214. }
  215.  
  216. public OnPlayerSpawn(playerid)
  217. {
  218.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerSpawn);
  219.     return 0;
  220. }
  221.  
  222. public OnPlayerDeath(playerid, killerid, reason)
  223. {
  224.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerDeath);
  225.     return 0;
  226. }
  227. /*
  228. public OnVehicleSpawn(vehicleid)
  229. {
  230.     //OnPlayerInfoChange(playerid, VehicleSpawn);
  231.     return 1;
  232. }
  233. */
  234. public OnVehicleDeath(vehicleid, killerid)
  235. {  
  236.     CallRemoteFunction("OnPlayerInfoChange", "ii", killerid, VehicleDeath);
  237.     return 0;
  238. }
  239.  
  240. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  241. {
  242.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerEnterVehicle);
  243.     return 0;
  244. }
  245.  
  246. public OnPlayerExitVehicle(playerid, vehicleid)
  247. {
  248.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerExitVehicle);
  249.     return 0;
  250. }
  251.  
  252. public OnPlayerStateChange(playerid, newstate, oldstate)
  253. {
  254.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerStateChange);
  255.     return 0;
  256. }
  257.  
  258. public OnPlayerEnterCheckpoint(playerid)
  259. {
  260.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerEnterCheckpoint);
  261.     return 0;
  262. }
  263.  
  264. public OnPlayerLeaveCheckpoint(playerid)
  265. {  
  266.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerLeaveCheckpoint);
  267.     return 0;
  268. }
  269.  
  270. public OnPlayerEnterRaceCheckpoint(playerid)
  271. {
  272.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerEnterRaceCheckpoint);
  273.     return 0;
  274. }
  275.  
  276. public OnPlayerLeaveRaceCheckpoint(playerid)
  277. {  
  278.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerLeaveRaceCheckpoint);
  279.     return 0;
  280. }
  281. /*
  282. public OnRconCommand(cmd[])
  283. {  
  284.     //OnPlayerInfoChange(playerid, RconCommand);
  285.     return 1;
  286. }
  287.  
  288. public OnObjectMoved(objectid)
  289. {  
  290.     //OnPlayerInfoChange(playerid, ObjectMoved);
  291.     return 1;
  292. }*/
  293.  
  294. public OnPlayerObjectMoved(playerid, objectid)
  295. {  
  296.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerObjectMoved);
  297.     return 0;
  298. }
  299.  
  300. public OnPlayerPickUpPickup(playerid, pickupid)
  301. {
  302.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerPickUpPickup);
  303.     return 0;
  304. }
  305.  
  306. public OnVehicleMod(playerid, vehicleid, componentid)
  307. {  
  308.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, VehicleMod);
  309.     return 0;
  310. }
  311.  
  312. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  313. {  
  314.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, VehiclePaintjob);
  315.     return 0;
  316. }
  317.  
  318. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  319. {  
  320.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, VehicleRespray);
  321.     return 0;
  322. }
  323.  
  324. public OnPlayerSelectedMenuRow(playerid, row)
  325. {
  326.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerSelectedMenuRow);
  327.     return 0;
  328. }
  329.  
  330. public OnPlayerExitedMenu(playerid)
  331. {
  332.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerExitedMenu);
  333.     return 0;
  334. }
  335.  
  336. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  337. {  
  338.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerInteriorChange);
  339.     return 0;
  340. }
  341.  
  342. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  343. {
  344.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerKeyStateChange);
  345.     return 1;
  346. }
  347.  
  348. //##############################################################################//
  349. //                                                                              //
  350. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3a                   //
  351. //                                                                              //
  352. //##############################################################################//
  353.  
  354. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  355. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  356. {
  357.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, DialogResponse);
  358.     return 0;
  359. }
  360.  
  361. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  362. public OnEnterExitModShop(playerid, enterexit, interiorid)//1 if the player entered or 0 if they exited
  363. {    //Эта функция вызывается, когда игрок входит или выходит из тюн-магазина.
  364.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, EnterExitModShop);
  365.     return 0;
  366. }
  367.  
  368. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  369. public OnPlayerClickPlayer(playerid, clickedplayerid, source)//для телефонов
  370. {   //Вызывается, когда игрок дважды нажимает на игрока в TAB.
  371.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerClickPlayer);
  372.     return 0;
  373. }
  374.  
  375. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  376. public OnPlayerStreamIn(playerid, forplayerid)//не работает на AFK игроков
  377. {   //Cрабатывает одновременно у игрока forplayerid создаётся пед игрока playerid на компе.
  378.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerStreamIn);
  379.     return 0;
  380. }
  381.  
  382. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  383. public OnPlayerStreamOut(playerid, forplayerid)//не работает на AFK игроков
  384. {
  385.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerStreamOut);
  386.     return 0;
  387. }
  388. /*
  389. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  390. public OnRconLoginAttempt(ip[], password[], success)
  391. {//Эта функция вызывается, когда кто-то пытается войти в RCON в игре; успешно или нет.
  392.     //OnPlayerInfoChange(playerid, RconLoginAttempt);
  393.     return 1;
  394. }
  395. */
  396. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  397. public OnVehicleStreamIn(vehicleid, forplayerid)
  398. {   //Вызывается при появлении тачки vehicleid в поле зрения игрока forplayerid.
  399.     CallRemoteFunction("OnPlayerInfoChange", "ii", forplayerid, VehicleStreamIn);
  400.     return 0;
  401. }
  402.  
  403. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  404. public OnVehicleStreamOut(vehicleid, forplayerid)
  405. {   //Вызывается при исчезновении стрим тачки в поле зрения игрока.
  406.     CallRemoteFunction("OnPlayerInfoChange", "ii", forplayerid, VehicleStreamOut);
  407.     return 0;
  408. }
  409.  
  410.  
  411. //This callback was added in SA-MP 0.3a and will not work in earlier versions!
  412. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  413. {   //выполняется при повреждении тачки игроком за водительским местом или при перекраске
  414.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, VehicleDamageStatusUpdate);
  415.     return 0;
  416. }
  417.  
  418. //##############################################################################//
  419. //                                                                              //
  420. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3c                   //
  421. //                                                                              //
  422. //##############################################################################//
  423.  
  424.  
  425. //This callback was added in SA-MP 0.3c R3 and will not work in earlier versions!
  426. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z)
  427. {//событие происходит когда игрок меняет позицию транспортного средства в котором нет водителя, или игрок сидит в машине пассажиром(второе не совсем понял надо проверять!)
  428.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, UnoccupiedVehicleUpdate);
  429.     return 0;
  430. }
  431.  
  432. //##############################################################################//
  433. //                                                                              //
  434. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3d                   //
  435. //                                                                              //
  436. //##############################################################################//
  437.  
  438. //This callback was added in SA-MP 0.3d and will not work in earlier versions!
  439. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)//, Float:ang=0.0
  440. {//OnPlayerClickMap вызывается, когда игрок ставит цель / путевой точки на карте меню паузы (щелкнув правой кнопкой мыши).
  441.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerClickMap);
  442.     return 0;
  443. }
  444.  
  445.  
  446.  
  447. //This callback was added in SA-MP 0.3d and will not work in earlier versions!
  448. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
  449. {   //вызывается когда игрок playerid наносит урон игроку damagedid
  450.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerGiveDamage);
  451.     return 0;
  452. }
  453.  
  454. //This callback was added in SA-MP 0.3d and will not work in earlier versions!
  455. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)//при год моде и АФК не вызывается
  456. {    //Эта функция вызывается, когда игрок получает урон.
  457. /*Return Values:
  458.  
  459.     1 - Callback will not be called in other filterscripts.
  460.     0 - Allows this callback to be called in other filterscripts.
  461.     It is always called first in filterscripts so returning 1 there blocks other filterscripts from seeing it
  462. */
  463.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerTakeDamage);
  464.     return 0;
  465. }
  466.  
  467.  
  468. //##############################################################################//
  469. //                                                                              //
  470. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3e                   //
  471. //                                                                              //
  472. //##############################################################################//
  473. //This callback was added in SA-MP 0.3e and will not work in earlier versions!
  474. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  475. {//Эта функция вызывается, когда игрок нажимает на TextDraw или отменяет режим выбора с помощью клавиши Escape.
  476.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerClickTextDraw);
  477.     return 0;
  478. }
  479.  
  480. //This callback was added in SA-MP 0.3e and will not work in earlier versions!
  481. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  482. {//Эта функция вызывается, когда игрок нажимает на игрока-TextDraw. Это не вызывается, когда игрок отменяет режим выбора (ESC) - однако, OnPlayerClickTextDraw есть.
  483.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerClickPlayerTextDraw);
  484.     return 0;
  485. }
  486.  
  487.  
  488. //This function was added in SA-MP 0.3e and will not work in earlier versions!
  489. public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
  490. {//Эта функция вызывается, когда игрок выбирает объект после того, как SelectObject был использован.
  491.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerSelectObject);
  492.     return 0;
  493. }
  494.  
  495. //This callback was added in SA-MP 0.3e and will not work in earlier versions!
  496. public OnPlayerEditObject(playerid, playerobject, objectid, response,
  497.     Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  498. {   //вызывается при окончании редактирования объекта или после нажатия сохранения.
  499.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerEditObject);
  500. }
  501.  
  502.  
  503. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  504. {//вызывается, когда игрок заканчивает редактирование приклееного объекта
  505.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerEditAttachedObject);
  506.     return 0;
  507. }
  508.  
  509. //##############################################################################//
  510. //                                                                              //
  511. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3z                   //
  512. //                                                                              //
  513. //##############################################################################//
  514.  
  515. //This callback was added in SA-MP 0.3z and will not work in earlier versions!
  516. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  517. {// вызывается только для оружия стреляющего пулями когда пуля достигает цели, если стрельбы в небо, то возвращает 0 координаты, а для снайперки вообще не вызывается
  518.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerWeaponShot);
  519.     return 0;
  520. }
  521.  
  522.  
  523.  
  524. //This callback was added in SA-MP 0.3z R2-2 and will not work in earlier versions!
  525. public OnIncomingConnection(playerid, ip_address[], port)
  526. {//вызывается, когда IP-адрес пытается установить соединение с сервером. Для того, чтобы блокировать входящие соединения, используйте BlockIpAddress.
  527. //- Добавлен колбэк "OnIncomingConnection".
  528. //Он сообщает, что игрок пытается подключиться к серверу
  529. //(в консоли раньше писалось: Incoming Connection: IP:PORT",
  530. //теперь можно отследить скриптово; вот только не знаю, как там playerid передаётся, т.к. игрок ещё не подключен и не имеет ID)
  531.     //if(IsPlayerNPC(playerid)) { return 1; }
  532.     //if( !strcmp(ip_address, "127.0.0.1", true) ) { return 1; }
  533.     //if( !strcmp(ip_address, IP_ADRESS, true) ) { return 1; }
  534.  
  535.     //gCheckDisconnect[playerid] = GetTickCount();
  536.     //strmid(PlayerInfo[playerid][pIP], ip_address, 0, 16, 16);
  537.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, IncomingConnection);
  538.     return 0;
  539. }
  540.  
  541.  
  542.  
  543. //This callback was added in SA-MP 0.3z R4 and will not work in earlier versions!
  544. public OnTrailerUpdate(playerid, vehicleid)
  545. {//Эта функция вызывается, когда игрок послал обновление прицепа.
  546.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, TrailerUpdate);
  547.     return 0;
  548. }
  549.  
  550. //##############################################################################//
  551. //                                                                              //
  552. //                    НОВЫЕ САМОВЫЗЫВАЕМЫЕ ФУНКЦИИ SA-MP 0.3.7                  //
  553. //                                                                              //
  554. //##############################################################################//
  555.  
  556. public OnActorStreamIn(actorid, forplayerid)
  557. {//Эта функция вызывается, когда актер попадает в область радара клиента-игрока.
  558.     CallRemoteFunction("OnPlayerInfoChange", "ii", forplayerid, ActorStreamIn);
  559.     return 0;
  560. }
  561.  
  562. //This function was added in SA-MP 0.3.7 and will not work in earlier versions!
  563. public OnActorStreamOut(actorid, forplayerid)
  564. {//Эта функция вызывается, когда актер покидает в область радара клиента-игрока.
  565.     CallRemoteFunction("OnPlayerInfoChange", "ii", forplayerid, ActorStreamOut);
  566.     return 0;
  567. }
  568.  
  569. public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
  570. {//вызывается, когда игрок наносит урон актеру.
  571.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerGiveDamageActor);
  572.     return 0;
  573. }
  574.  
  575. //This callback was added in SA-MP 0.3.7 and will not work in earlier versions!
  576. public OnVehicleSirenStateChange(playerid, vehicleid, newstate)
  577. {//Эта функция вызывается, когда сирена транспортного средства переключается.
  578.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, VehicleSirenStateChange);
  579.     return 0;
  580. }
  581.  
  582.  
  583. //##############################################################################//
  584. //#                                                                            #//
  585. //#                    ПОЛЬЗОВАТЕЛЬСКИЕ КОНСОЛЬНЫЕ КОМАНДЫ                     #//
  586. //#                                                                            #//
  587. //##############################################################################//
  588.  
  589. public OnPlayerCommandText(playerid, cmdtext[])//Выполняется при введении игроком команды.
  590. //playerid  ID пославшего команду игрока.
  591. //cmdtext[] Текст команды.
  592. {
  593.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerCommandText);
  594.     return 0;
  595.     //- 0, скрипт передается во все скрипты, после обработки всеми скриптами выводиться собщения 'SERVER: Unknown command'.
  596. //Порядок обработки: филтрскрипты, гейммод.
  597. //Returning '0' is used to inform the server that the command
  598. //has not been successfully processed, and passes it to other scripts.
  599. //If there hasn't been a successful process, then you will get that
  600. //'SERVER: Unknown Command.' error.
  601. }//end OnPlayerCommandText
  602.  
  603. //##############################################################################//
  604. //#                                                                            #//
  605. //#                  ПОЛЬЗОВАТЕЛЬСКИЕ КОНСОЛЬНЫЕ СООБЩЕНИЯ                     #//
  606. //#                                                                            #//
  607. //##############################################################################//
  608. public OnPlayerText(playerid, text[])//Выполняется при введении игроком текста в чат.
  609. //playerid ID говорящего игрока.
  610. //text[] Текст, посланный игроком.
  611. {
  612.     CallRemoteFunction("OnPlayerInfoChange", "ii", playerid, PlayerTxt);
  613.     return 0;
  614. //- 1, обрывание события, сообщение выводится в чат.
  615. }// End OnPlayerText(playerid, text[])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement