 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Tutorial: Открытие/Закрытие транспорта в 0.3
| |
| toneysix | Дата: Суббота, 06.03.2010, 21:26 | Сообщение # 1 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Итак, как известно, в новой версии SA-MP 0.3 имеется встроенный стример для транспорта, в связи с этим, функция для закрытия/открытия тачек должна быть перевызвана в новом паблике OnVehicleStreamIn - этот паблик срабатывает в тот момент, когда игрок находится в зоне видимости какого-либо транспорта, зона видимости указывается в server.cfg параметр stream_distance. Теперь начнём. Создаём новый паблик (копи-паст) в Ваш мод. public OnVehicleStreamIn(vehicleid, forplayerid) { SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, gCarLock[vehicleid]);//Команда для открытия/закрытия транспорта. return 1; } Результат: При появлении игрока в зоне видимости какого-либо транспорта, он будет создавать его закрытым либо открытым, в зависимости от параметра gCarLock для этой тачки. Теперь, для того чтобы транспорт закрывался для тех игроков, которые находится рядом (у которых данный паблик уже вызывался для этой тачки), нужно сделать дополнительный цикл. Пример команды: if(strcmp(cmd, "/lock", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Вы должны быть в транспорте."); new newcar = GetPlayerVehicleID(playerid); if(gCarLock[newcar]) { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && IsVehicleStreamedIn(newcar, i)) { SetVehicleParamsForPlayer(newcar, i, 0, 0); } } gCarLock[newcar] = 0; SendClientMessage(playerid, COLOR_WHITE, "Транспорт разблокирован."); return 1; } else { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && IsVehicleStreamedIn(newcar, i)) { SetVehicleParamsForPlayer(newcar, i, 0, 1); } } gCarLock[newcar] = 1; SendClientMessage(playerid, COLOR_WHITE, "Транспорт заблокирован."); } return 1; } P.S Это образная команда, в стандартном ГФ идёт уже готовый паблик UnLockCar и LockCar. Думаю теперь всё понятно. Удачи.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| [RGS]JAGUAR | Дата: Воскресенье, 07.03.2010, 12:29 | Сообщение # 2 |
|
Советчик
Группа:
Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус: 
| toneysix, отличная работа ДруГ!
[/url] Новая ICQ: 593922
|
| |
|
|
| SMOUK | Дата: Воскресенье, 07.03.2010, 17:00 | Сообщение # 3 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Хм. непонимаю, зачем это всё ? Всё же нормально открываеться/закрываеться, чего ище надо!

|
| |
|
|
| xSLiMx | Дата: Воскресенье, 07.03.2010, 17:18 | Сообщение # 4 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2163
Награды: 34
Город: Ростов - на - Дону
Репутация: 1429
Замечания: 80%
Статус: 
| smouk87, скачай ГФ норм - подойди к домашней тачке и нажми ентер. Он сядет. Даже если авто закрыта. toneysix, + за старания
|
| |
|
|
| ZEM | Дата: Воскресенье, 07.03.2010, 18:31 | Сообщение # 5 |
|
Новенький
Группа:
Пользователи
Сообщений: 62
Награды: 0
Город: LS
Репутация: 8
Замечания: 0%
Статус: 
| toneysix, спасибо что ты сделал это очень нужный код!!!
|
| |
|
|
| Fifa4ka | Дата: Понедельник, 08.03.2010, 17:03 | Сообщение # 6 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 748
Награды: 38
Город: Рига
Замечания: 0%
Статус: 
| у меня лично как стояло /lock так он и работает не могут сесть и нечего
|
| |
|
|
| Hardcore | Дата: Вторник, 09.03.2010, 16:37 | Сообщение # 7 |
|
Новенький
Группа:
Продвинутые
Сообщений: 36
Награды: 3
Город: Sun City
Репутация: 8
Замечания: 20%
Статус: 
| Помогите пожалуйста. Вот мой lock. На сервере у меня машины закрыты и не открываются. Code if(strcmp(cmd, "/lock", true) == 0) { if(IsPlayerConnected(playerid)) { new carid; if (gTeam[playerid] == 2 || gTeam[playerid] == 1) { if(gLastCar[playerid] == 0 && PlayerInfo[playerid][pPhousekey] == 255) { SendClientMessage(playerid, COLOR_GRAD2, "Ó âàñ íåò ìàøèíû."); return 1; } else if(gLastCar[playerid] != 0 && gLastCar[playerid] != PlayerInfo[playerid][pPhousekey]+1) { if (HireCar[playerid] != gLastCar[playerid] && HireCar[playerid] != 299) { gLastDriver[HireCar[playerid]] = 300; gCarLock[HireCar[playerid]] = 0; UnLockCar(HireCar[playerid]); } HireCar[playerid] = gLastCar[playerid]; } } if (PlayerInfo[playerid][pPhousekey] == 255) { if(HireCar[playerid] == 299) { SendClientMessage(playerid, COLOR_GRAD2, "Ó âàñ íåò ìàøèíû."); return 1; } } carid = PlayerInfo[playerid][pPhousekey]+1; if(HireCar[playerid] != 299 && !SwitchKey[playerid]) { carid = HireCar[playerid]; } //new driver = gLastDriver[carid]; new lockstatus = gCarLock[carid]; new Float:cx,Float:cy,Float:cz; GetVehiclePos(carid, cx, cy, cz); switch (lockstatus) { case 0: { if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255) { SendClientMessage(playerid, COLOR_GRAD2, "Ó âàñ íåò ìàøèíû"); return 1; } if(HireCar[playerid] == carid && !SwitchKey[playerid]) { GameTextForPlayer(playerid, "~w~COPOìì•• –AŽ…ìA ~r~ˆAKP‘A", 5000, 6); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); gCarLock[carid] = 1; LockCar(carid); } else if (PlayerInfo[playerid][pPhousekey] == carid-1) { GameTextForPlayer(playerid, "~w~ƒO–AŽì•• –AŽ…ìA ~r~ˆAKP‘A", 5000, 6); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); gCarLock[carid] = 1; LockCar(carid); return 1; } } case 1: { if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255) { SendClientMessage(playerid, COLOR_GRAD2, "Ó âàñ íåò ìàøèíû"); return 1; } if(HireCar[playerid] == carid && !SwitchKey[playerid]) { GameTextForPlayer(playerid, "~w~COPOìì•• –AŽ…ìA ~g~OKP‘A", 5000, 6); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); gCarLock[carid] = 0; UnLockCar(carid); } if (PlayerInfo[playerid][pPhousekey] == carid-1) { GameTextForPlayer(playerid, "~w~ƒO–AŽì•• –AŽ…ìA ~g~OKP‘A", 5000, 6); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); gCarLock[carid] = 0; UnLockCar(carid); return 1; } } default: { SendClientMessage(playerid, COLOR_GRAD2, "Îøèáêà"); } } if(carid == 256) { SendClientMessage(playerid, COLOR_GRAD2, "Âû íå èìååòå ìàøèíû !"); } } return 1; } Вот ещё LockCar и UnLockCar: Code public LockCar(carid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && IsVehicleStreamedIn(carid, i)) { SetVehicleParamsForPlayer(carid, i, 0, 0); gCarLock[carid] = 1; } } }
public UnLockCar(carid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && IsVehicleStreamedIn(carid, i)) { if(!IsAPlane(carid)) { SetVehicleParamsForPlayer(carid, i, 0, 0); gCarLock[carid] = 0; } } } }
|
| |
|
|
| toneysix | Дата: Вторник, 09.03.2010, 20:00 | Сообщение # 8 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Hardcore паблик OnVehicleStreamIn добавлял? И не сбиты ли айди тачек? Так-как я вижу так только закрытие тачек для домов, не факт, что оно не сбито.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| Hardcore | Дата: Вторник, 09.03.2010, 21:42 | Сообщение # 9 |
|
Новенький
Группа:
Продвинутые
Сообщений: 36
Награды: 3
Город: Sun City
Репутация: 8
Замечания: 20%
Статус: 
| Паблик создан, Машины не сбиты.
|
| |
|
|
| toneysix | Дата: Вторник, 09.03.2010, 22:29 | Сообщение # 10 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Проверяй конкретно prinf'ом, какая тачка закрывается, и потом садись и чекай её айди, чтобы всё было правильно. А вообще, я бы тебе посоветовал переделать команду /lock, ибо там столько тупых проверок не нужных стандартных от ГФ, сделал бы проще единую систему.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| bloodcat | Дата: Понедельник, 26.04.2010, 19:59 | Сообщение # 11 |
|
Новенький
Группа:
Пользователи
Сообщений: 16
Награды: 1
Город: Красноярск
Репутация: -2
Замечания: 0%
Статус: 
| Лажа можно закрыть любую тачку и нельзя открыть когда ты не в машине
|
| |
|
|
| [RD]Chez | Дата: Понедельник, 26.04.2010, 20:18 | Сообщение # 12 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| [offtop] bloodcat, флуди где-нибудь еще[/offtop]
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
|
 |
|
 | |
| |
|