kusehsup

Создание машин для фракций

В теме 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 Не своровал, а одолжил на добрые нужды :$

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


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

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

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


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

@RavanD как вы вставили код в OnPlayerStateChange? Киньте его сюда. 

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


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

@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 , создано

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

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


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

@RavanD у фракции полиция id 3? 

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


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

@DEST Да, а что? Ну как лидерки стоят, так и тут.

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


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

Попробуй так

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

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


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

@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 пользователей онлайн

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

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

    • romanets111
      От romanets111
      Вообщем не могу запустить сервер, ничего не регистрация , зашёл на сервер и всё, на хостинге пишет Unknown
      Помогите решить проблему, возникает в консоле такое
       
      [22:02:07] [debug] Run time error 19: "File or function is not found"[22:02:07] [debug]  BS_ReadValue
      [22:02:07] [debug]  PR_SendPacket[22:02:07] [debug]  PR_Init
      [22:02:07] [debug]  PR_RegHandler[22:02:07] [debug]  BS_IgnoreBits
      [22:02:07] [debug]  BS_New[22:02:07] [debug]  BS_WriteValue
      [22:02:07] [debug]  BS_Delete[22:02:07] [debug]  BS_GetNumberOfBytesUsed
       
      Прошу вас помогите мне