В теме 17 сообщений

Постоянный

Сразу скажу, что данный урок написал Amfy, но нашему порталу он тоже не обходим.

Приступим

 

Первым делом нам нужно создать глобальную переменную.

new Mil[2];//Назовем её Mil

Далее идем в public OnGameModeinit и вставляем наши машины (машины вы ставите естественно свои). К примеру, мне нужно 4 машины.

AddStaticVehicleEx(411,x,y,z,angle,55,55,60000);
AddStaticVehicleEx(411,x,y,z,angle,55,55,60000);
AddStaticVehicleEx(411,x,y,z,angle,55,55,60000);
AddStaticVehicleEx(411,x,y,z,angle,55,55,60000);

К первой машине добавляем Mil[0] =, а к последней машине Mil[1] =, смотрите пример ниже как должно получится.

Mil[0] = AddStaticVehicleEx(411,1788.7271,1352.2760,10.7370,3.0671,55,55,60000);
AddStaticVehicleEx(411,1788.7271,1352.2760,10.7370,3.0671,55,55,60000);
AddStaticVehicleEx(411,1788.7271,1352.2760,10.7370,3.0671,55,55,60000);
Mil[1] = AddStaticVehicleEx(411,1788.7271,1352.2760,10.7370,3.0671,55,55,60000);

Машины между Mil[0] и Mil[1] (включительно) автоматически становятся для милиции. А это значит, если в дальнейшим надо будет добавлять машины милиции, добавляем их между Mil[0] и Mil[1]

 

Далее идем в public OnPlayerStateChange и вставляем следующий код:

if(newstate == PLAYER_STATE_DRIVER)//Если игрок сидит за рулем автомобиля
{
    new carid = GetPlayerVehicleID(playerid);//Узнаем ид машины в которой сидит игрок
    if(carid >= Mil[0] && carid <= Mil[1])//Если игрок сидит в машине Mil[0] до Mil[1], значит это милицейские машины
    {
        if(PlayerInfo[playerid][pMember] != 1)//Проверка на игроков из фракции номер 1.
        {
            SendClientMessage(playerid, -1, "У вас нет ключей от этого транспорта.");//Если игрок не состоит в 1-ой фракции
            RemovePlayerFromVehicle(playerid);//Выкидываем с машины
        }
    }
}

Если PLAYER_STATE_DRIVER уже существует в данном паблике, ещё раз создавать необязательно. Можно просто вставить в уже существующий.

 

P.S Если возникнут вопросы, пишите в данной теме. PlayerInfo, pLeader, pMember при необходимости нужно сменить.

 

Au - p/s Не своровал, а одолжил на добрые нужды :$

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

Есть проблема. Создал так же. Но госсников выкидывает из них машин. А нелегалов (ОПГ) нет. В чем может быть проблема? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@DEST

Спойлер

 if(carid >= army_car[0] && carid <= army_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 2) 
  { 
  new model = GetVehicleModel(carid); 
    if(model == 433) 
    { 
     new str[64]; 
     format(str,sizeof(str),"Çàãðóæåíî: %d/10000 ïàòðîíîâ, %d/10000 ìåòàëëà",CAR_DATA[carid][data_PATR],CAR_DATA[carid][data_MET]); 
     SendClientMessage(playerid,0x99FFCCFF,str); 
    } 
   } 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= police_car[0] && carid <= police_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 3) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= hospital_car[0] && carid <= hospital_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 4) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= fsb_car[0] && carid <= fsb_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] != 8) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= smi_car[0] && carid <= smi_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 9) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= rostov_car[0] && carid <= rostov_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 5) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= maykop_car[0] && carid <= maykop_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 6) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
  if(carid >= odessa_car[0] && carid <= odessa_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 7) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 
 } 
 return true; 
}

 

 

Заметка от DEST , создано

Как использовать спойлер и код?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Новичок
if(PLAYER_DATA[playerid][data_MEMBER] !== id фракции) 

Попробуй так

Отредактировано пользователем Soul1337

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@Soul1337Ну, а смысл? У ОПГ такой же код. Но ОПГшников невыкидывает из машин фракции, а вот Госников выкидывает. @DEST

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@RavanD вот этот код: 

Спойлер

if(carid >= police_car[0] && carid <= police_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 3) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 

 

замените этим: 

Спойлер

if(carid >= police_car[0] && carid <= police_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 3) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    printf("[#DEBUG] %d - playerid, %d - memberid", playerid, PLAYER_DATA[playerid][data_MEMBER]); 
    return true; 
  } 
  } 

 

после сядьте в машину полиции и киньте логи. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@DEST 

Спойлер

--------— 
Loaded log file: "server_log.txt". 
--------— 
 
SA-MP Dedicated Server 
--------------------— 
v0.3e, (C)2005-2012 SA-MP Team 
 
[12:55:52] 
[12:55:52] Server Plugins 
[12:55:52] —----------— 
[12:55:52] Loading plugin: dc_cmd.so 
[12:55:52] Daniel's CMD plugin v2.8 
[12:55:52] (c) 2014 Daniel_Cortez 
[12:55:52]  www.pro-pawn.ru 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: mysql.so 
[12:55:52] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory) 
[12:55:52] Loading plugin: mysql_static.so 
[12:55:52] » plugin.mysql: R39-3 successfully loaded. 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: sscanf.so 
[12:55:52] 
 
[12:55:52] =============================== 
 
[12:55:52] sscanf plugin loaded. 
 
[12:55:52] Version: 2.8.1 
 
[12:55:52] (c) 2012 Alex "Y_Less" Cole 
 
[12:55:52] =============================== 
 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: streamer.so 
[12:55:52] 
 
*** Streamer Plugin v2.7.8 by Incognito loaded *** 
 
[12:55:52] Loaded. 
[12:55:52] Loaded 4 plugins. 
 
[12:55:52] 
[12:55:52] Filterscripts 
[12:55:52] —-----------— 
[12:55:52] Loaded 0 filterscripts. 
 
[12:55:52] [Ravand ROLEPLAY]:                           MySQL         
[12:55:52] 
----------------------------— 
[12:55:52] Start date: 5.03.2017 
[12:55:52] —--------------------------— 
[12:55:52] Number of vehicle models: 24 
[12:55:52] [serv_log] Load warehouse. Time: 0 ms. 
[12:55:52] [serv_log] Load job business. Load: 4 b. Time: 1 ms. 
[12:55:52] [serv_log] Load auto business. Load: 2 b. Time: 0 ms. 
[12:55:53] [serv_log] Load kvartiry. Load: 305 b. Time: 107 ms. 
[12:55:53] [serv_log] Load houses. Load: 49 h. Time: 2 ms. 
[12:55:53] [serv_log] Load business. Load: 40 b. Time: 3 ms. 
[12:55:53] [serv_log] Load polit. Load: 9 p. Time: 1 ms. 
[12:55:53] [serv_log] Load radars. Load: 5 r. Time: 0 ms. 
[12:56:35] Incoming connection: 188.168.224.179:54933 
[12:56:36] [join] Alex_Lexis has joined the server (0:188.168.224.179) 
[12:56:53] [chat] [Alex_Lexis]: .   
[12:57:48] [part] Alex_Lexis has left the server (0:1)

 

23 часа назад, DEST сказал:

@RavanD вот этот код: 

  Код (открыть спойлер)


if(carid >= police_car[0] && carid <= police_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 3) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    return true; 
  } 
  } 

 

замените этим: 

  Код (открыть спойлер)


if(carid >= police_car[0] && carid <= police_car[1]) 
  { 
  if(PLAYER_DATA[playerid][data_MEMBER] == 3) 
  {} 
  else 
  { 
  SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!"); 
  RemovePlayerFromVehicleAC(playerid); 
    printf("[#DEBUG] %d - playerid, %d - memberid", playerid, PLAYER_DATA[playerid][data_MEMBER]); 
    return true; 
  } 
  } 

 

после сядьте в машину полиции и киньте логи. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@RavanD судя по логам, код вообще не отработал. Вы после замены строк кода мод компилировали и перезаливали с перезапуском? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@DEST Да, удалил старый код, вставил новый, скомпилировал. Когда скомпилировался обновил на хостинге и естественно его перезапустил, в чем может быть проблема? 

Loaded log file: "server_log.txt". 
--------— 
 
SA-MP Dedicated Server 
--------------------— 
v0.3e, (C)2005-2012 SA-MP Team 
 
[12:55:52] 
[12:55:52] Server Plugins 
[12:55:52] —----------— 
[12:55:52] Loading plugin: dc_cmd.so 
[12:55:52] Daniel's CMD plugin v2.8 
[12:55:52] (c) 2014 Daniel_Cortez 
[12:55:52]  www.pro-pawn.ru 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: mysql.so 
[12:55:52] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory) 
[12:55:52] Loading plugin: mysql_static.so 
[12:55:52] » plugin.mysql: R39-3 successfully loaded. 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: sscanf.so 
[12:55:52] 
 
[12:55:52] =============================== 
 
[12:55:52] sscanf plugin loaded. 
 
[12:55:52] Version: 2.8.1 
 
[12:55:52] (c) 2012 Alex "Y_Less" Cole 
 
[12:55:52] =============================== 
 
[12:55:52] Loaded. 
[12:55:52] Loading plugin: streamer.so 
[12:55:52] 
 
*** Streamer Plugin v2.7.8 by Incognito loaded *** 
 
[12:55:52] Loaded. 
[12:55:52] Loaded 4 plugins. 
 
[12:55:52] 
[12:55:52] Filterscripts 
[12:55:52] —-----------— 
[12:55:52] Loaded 0 filterscripts. 
 
[12:55:52] [Ravand ROLEPLAY]:                           MySQL         
[12:55:52] 
----------------------------— 
[12:55:52] Start date: 5.03.2017 
[12:55:52] —--------------------------— 
[12:55:52] Number of vehicle models: 24 
[12:55:52] [serv_log] Load warehouse. Time: 0 ms. 
[12:55:52] [serv_log] Load job business. Load: 4 b. Time: 1 ms. 
[12:55:52] [serv_log] Load auto business. Load: 2 b. Time: 0 ms. 
[12:55:53] [serv_log] Load kvartiry. Load: 305 b. Time: 107 ms. 
[12:55:53] [serv_log] Load houses. Load: 49 h. Time: 2 ms. 
[12:55:53] [serv_log] Load business. Load: 40 b. Time: 3 ms. 
[12:55:53] [serv_log] Load polit. Load: 9 p. Time: 1 ms. 
[12:55:53] [serv_log] Load radars. Load: 5 r. Time: 0 ms. 
[12:56:35] Incoming connection: 188.168.224.179:54933 
[12:56:36] [join] Alex_Lexis has joined the server (0:188.168.224.179) 
[12:56:53] [chat] [Alex_Lexis]: .   
[12:57:48] [part] Alex_Lexis has left the server (0:1)

Заметка от Cawfee , создано

Как взять код в тег "Код"?.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@RavanD значит, вы либо не садились в машину, либо сели не в ту машину. Это точно единственно существующие в моде машины? Может быть уже есть проверка на них. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@DEST Да, нет я сел... Меня сразу выкинуло, да и единственные это машины для полиции... Больше нету. @DEST Да, удалил старый код, вставил новый, скомпилировал. Когда скомпилировался обновил на хостинге и естественно его перезапустил, в чем может быть проблема? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@RavanD не нужно скидывать все одно и то же по 150 раз, тем более, если содержимое логов никак не меняется. Кинь все, что связано с police_car[0] и police_car[1]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Освоившийся

@DEST

Спойлер

new police_car[2]; 
police_car[0] = AddStaticVehicleEx(598, 47.398200, 313.934478, 12.168399, 156.879272, 1, 1, 600);

	AddStaticVehicleEx(551, 2574.878417, -2446.236083, 21.427700, 359.523956, 1, 1, 600);
	AddStaticVehicleEx(551, 2571.130859, -2446.124511, 21.426998, 0.200952, 1, 1, 600);
	AddStaticVehicleEx(551, 2567.552734, -2446.261718, 21.427053, 0.126675, 1, 1, 600);
	AddStaticVehicleEx(427, 2560.312011, -2446.803955, 22.126560, 358.759155, 1, 1, 600);
	AddStaticVehicleEx(427, 2556.630126, -2446.666992, 22.128067, 0.734909, 1, 1, 600);
	AddStaticVehicleEx(427, 2552.816406, -2446.720947, 22.133134, 2.225709, 1, 1, 600);
	AddStaticVehicleEx(601, 2556.211425, -2411.082519, 22.260698, 180.360412, 1, 1, 600);
	AddStaticVehicleEx(601, 2550.800292, -2411.006103, 22.265068, 180.629425, 1, 1, 600);
	AddStaticVehicleEx(601, 2545.118896, -2411.093750, 22.269054, 180.986511, 1, 1, 600);
	AddStaticVehicleEx(598, 2542.6313, -2446.9419, 21.7963, 270.0000, 1, 79, 600);
	AddStaticVehicleEx(598, 2542.7373, -2440.4561, 21.7963, 270.0000, 1, 79, 600);
	AddStaticVehicleEx(598, 2542.7195, -2434.1736, 21.7963, 270.0000, 1, 79, 600);
	AddStaticVehicleEx(598, 2542.7837, -2427.7527, 21.7963, 270.0000, 1, 79, 600);
	AddStaticVehicleEx(598, 2542.9531, -2421.3896, 21.7963, 270.0000, 1, 79, 600);
	AddStaticVehicleEx(497, 2536.3862, -2431.4856, 27.0618, 0.0000, 1, 79, 600);
	AddStaticVehicleEx(598, 2542.6970, -2415.3042, 21.7963, 270.0000, 1, 79, 600);


	AddStaticVehicleEx(598, 221.177825, 1510.187011, 11.991920, 168.416397, 1, 1, 600);
	AddStaticVehicleEx(598, 224.978286, 1509.392700, 11.990458, 169.215454, 1,1, 600);
	AddStaticVehicleEx(598, 228.445861, 1508.749023, 11.991939, 169.390945, 1, 1, 600);
	AddStaticVehicleEx(598, 232.106964, 1508.039672, 11.992456, 168.452941, 1, 1, 600);
	AddStaticVehicleEx(597, 235.643753, 1507.057861, 11.996908, 168.434814, 1, 1, 600);
	AddStaticVehicleEx(597, 239.246749, 1506.395507, 11.999672, 168.185836, 1, -1, 600);
	AddStaticVehicleEx(597, 242.760116, 1505.677124, 11.995423, 168.523483, 1, 1, 600);
	AddStaticVehicleEx(597, 231.049591, 1491.142944, 11.996998, 25.601890, 1, 1, 600);
	AddStaticVehicleEx(551, 234.882827, 1490.388061, 12.001555, 29.313669, 1, 1, 600);
	AddStaticVehicleEx(551, 238.748306, 1489.620483, 12.003518, 29.063425, 1, 1, 600);
	AddStaticVehicleEx(551, 242.433425, 1489.556152, 11.994470, 29.647399, 1, 1, 600);




	AddStaticVehicleEx(551, 50.722869, 312.434967, 12.168233, 157.562896, 1, 1, 600);
	AddStaticVehicleEx(551, 53.976848, 311.018066, 12.167160, 157.674545, 1, 1, 600);
	AddStaticVehicleEx(551, 57.275024, 309.271484, 11.966865, 157.399627, 1, 1, 600);
	AddStaticVehicleEx(599, 67.255516, 305.003540, 11.967527, 157.369338, 1, 1, 600);
	AddStaticVehicleEx(599, 63.946502, 306.389526, 11.967477, 157.045120, 1, 1, 600);
	AddStaticVehicleEx(599, 60.453102, 307.857849, 11.966860, 157.891815, 1, 1, 600);
	AddStaticVehicleEx(599, 51.906246, 293.086486, 12.156556, 6.589720, 1, 1, 600);
	AddStaticVehicleEx(599, 55.799579, 291.518798, 12.165949, 5.549322, 1, 1, 600);
	AddStaticVehicleEx(599, 59.818611, 289.858947, 12.169231, 6.557450, 1, 1, 600);
	AddStaticVehicleEx(427, 67.839401, 280.552856, 11.909934, 22.211221, 1, 1, 600);
	AddStaticVehicleEx(427, 65.329101, 274.616394, 11.908948, 24.888425, 1, 1, 600);
	police_car[1] = AddStaticVehicleEx(427, 62.666393, 268.300079, 11.908353, 27.795463, 1, 1, 600);
	if(carid >= police_car[0] && carid <= police_car[1])
			{ if(PLAYER_DATA[playerid][data_MEMBER] == 3)
			{}
			else { SendClientMessage(playerid,COLOR_WARNING,"Äàííûé òðàíñïîðò Âàì íåäîñòóïåí!");
			RemovePlayerFromVehicleAC(playerid);
			printf("[#DEBUG] %d - playerid, %d - memberid", playerid, PLAYER_DATA[playerid][data_MEMBER]);
				return true; }
	}

 

 

@DEST Я с телефона писал, жму на "@", а он старые СМС еще прихватывает. Баг наверное)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От xDetik
      Приветствую.
      Сделал небольшой островок на некотором расстоянии от карты Сан-Андреса, хотел поставить там пикап, добавил пикап в мод, и после того как приехал на остров, пикап не видно. Но если на этом же пикапе поменять координаты на те, которые находятся на карте Сан-Андреса, то он становится виден. В чем может быть проблема?
    • От Daf
      Здравствуйте, знатоки Pawn. У меня возникла такая проблема, сейчас попробую расписать ее подробно:
      Я решил добавить в игру Real cars. Всё сделал правильно: подключил инклуд, знаю принцип добавление реал кара. Захожу в игру и вижу машину. Добавляю вторую — она тоже есть. Добавляю третью — снова всё нормально. Но когда я пытаюсь добавить четвёртую, игра крашится при входе.
      Не важно, какой ид авто я ставлю, менял модельки, переделал всё, но проблема остаётся. Думаю, вы сможете подсказать, как её решить.
      Include - m_custom_sync 1.0.0
      CreateVehicleVEx(npoType, npoId, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = 180, addsiren = 0, tc_veh = 0) {     new vehicle, custom_id = -1;     if(!(400 <= modelid <= 20000))     {         custom_id = GetSlotVehicleModelSync(modelid);         if(custom_id == -1) return print("daf top");         modelid = customVehModels[custom_id][ModelID];     } #include <m_custom-sync> #define M_CUSTOM_CustomForPlayers 1 #define M_CUSTOM_CustomForActors 1 #define M_CUSTOM_CustomForVehicles 1 public OnGameModeInit() {     AddVehicleSyncModel(560, 12500); // беха     AddVehicleSyncModel(560, 12600); // порш     AddVehicleSyncModel(579, 12700); // хамер     AddVehicleSyncModel(560, 19929); // чирик