Posted September 16, 2018 (edited) · Report post Здравствуйте, уважаемые пользователи форума Pawno-rus. Видел в уроках тему, заголовок которой гласит следующее: "Создание пикапа". Отозвались люди ( в том числе и я ) довольно негативно к данному уроку. Я решил сделать идентичную тему, но с созданием пикапов входа/выхода. Ну что начнем уже :-) //Ко всем new new bank[2]; Идем дальше. Ищем следующую строку: public OnGameModeInit И вставляем после первой скобки следующее bank[0] = CreatePickup(19132, 23, x,y,z, -1); bank[1] = CreatePickup(19132, 23, x,y,z, -1); И так давайте разбираться, что к чему bank[0] / bank[1] - Название пикапа, или присваивание переменной функции CreatePickup. CreatePickup - Соответственно сама функция создания пикапа. 19132- Первый параметр функции или id пикапа. Данный id - Белая стрелка вниз. 23 - Тип пикапа. В данном случае - Взятие пикапа без пропадания. x,y,z - Координаты нахождения пикапа. ( Дабы их узнать, в игре становимся к месту, где ходите поставить пикап и прописываете команду /save. Ваши координаты будут находится тут: Документы\GTA San Andreas User Files\CR-MP\GenerationC\saveposition ). 0 - Последний параметр функции. ID виртуального мира. По умолчанию - 0. И так почти пол дела сделано. Теперь идем в: public OnPlayerPickUpPickup И после первой скобки вставляем следующий код: Спойлер if(pickupid == Bank[0]) //Телепорт в интерьер { SetPlayerFacingAngle(playerid, 180); SetPlayerPos(playerid, x,y,z); SetPlayerInterior(playerid, 5); SetPlayerVirtualWorld(playerid,1); return true; } if(pickupid == Bank[1]) //Телепорт во двор { SetPlayerPos(playerid, x,y,z); SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid, 0); SetPlayerFacingAngle(playerid, 180); return true; } Разбираемся, друзья. if... Проверка на то, что игрок встал на пикап. SetPlayerPos - Установка координат местоположения игрока. (x,y,z - координаты). SetPlayerFacingAngle - Угол игрока. ( Найдете в saveposition.txt ) SetPlayerVirtualWorld - Виртуальный мир SetPlayerInterior - ID интерьера. Не трогать!!. На этом все. Автор урока - Edgar Удачной компиляции без ошибок Вам, друзья B P/S Надеюсь меня не будут критиковать : Edited September 16, 2018 by DEST 2 Заметка от DEST , создано September 16, 2018 Пользуйтесь тегом "код". Как это сделать? Share this post Link to post Share on other sites
Posted September 16, 2018 · Report post @trp, правда сейчас многие переводят пикапы на динамические зоны, а вы, наоборот, рассказываете о старом методе 0 Share this post Link to post Share on other sites
Posted September 17, 2018 · Report post Уже было... То же самое, смысла не вижу. КЛИК (переход на тему) 0 Share this post Link to post Share on other sites
Posted November 29 (edited) · Report post *слова удалены системой, все верно делаю, пикап есть но он никуда меня не тепает, устал Edited November 29 by keyl 0 Share this post Link to post Share on other sites
Posted November 29 · Report post @Мемен Томорли, показали бы, что и куда вы вставили... 0 Share this post Link to post Share on other sites
Posted November 29 · Report post @Cawfee ну... Создал две перемнные new vhodmagazbcrb; new vihodmagazbcrb; Далее, в public OnGameModeInit() { vhodmagazbcrb = CreateDynamicPickup(1318,23,2069.5735,1815.5914,12.6791); - ID пикапа, тип пикапа, координаты пикапа. vihodmagazbcrb = CreateDynamicPickup(1318,23,-27.312299,-29.277599,1003.557250); - ID пикапа, тип пикапа, координаты интерьера(взял с инета). Идем дальше в OnPlayerPickUpPickUp, у меня данный паблик немного по другому называется, но не суть Тут я создал сам телепорт: if(pickupid == vhodmagazbcrb) //Телепорт в 24/7 { SetPlayerInterior(playerid, 4); // ID интерьера SetPlayerPos(playerid, -27.312299,-29.277599,1003.557250); // Координаты интерьера SetPlayerVirtualWorld(playerid, 6); // ID виртуального мира return true; } if(pickupid == vihodmagazbcrb) //Телепорт из 24/7 { SetPlayerInterior(playerid, 0); // ID интерьера, после выхода из инта 0 SetPlayerPos(playerid, 2072.2981,1815.5206,12.2253); // Координаты выхода из интерьера SetPlayerVirtualWorld(playerid, 0); // ID виртуального мира return true; } Ну в чем вообщем и проблема, пикап появился, все как надо, он даже телепортирует, но, телепортирует он так скажем, (Слово удалено системой) пойми куда. Если есть желание помочь мне, напишите пожалуйста в вк https://vk.com/mementomorli 0 Share this post Link to post Share on other sites
Posted November 30 · Report post @Мемен Томорли, при попадании на пикап vhodmagazbcrb вы переходите на координаты пикапа vihodmagazbcrb, а попадание на его координаты влечет обратно переход на координаты пикапа vhodmagazbcrb. Иначе говоря, вас бесконечно телепортирует с одного пикапа на другой. Традиционно такую проблему решали двумя путями. Либо вы реализуете переход по нажатию клавиши, а не по факту "становления" на пикап, чтобы избежать зацикливания, либо переходить на координаты, отличные от координаты пикапа, например, путем внесения смещения: SetPlayerPos(playerid, -27.312299+2.0,-29.277599,1003.557250); // Координаты интерьера 0 Share this post Link to post Share on other sites
Posted November 30 · Report post @Cawfee Понимаете, проблема в том, что меня тепает в пустоту, там нету какого либо интерьера 0 Share this post Link to post Share on other sites
Posted November 30 · Report post @Мемен Томорли, из-за постоянных переходов туда-обратно маппинг может не успеть подгрузиться, поэтому у вас складывается такое ощущение. 19 часов назад, Мемен Томорли сказал: координаты интерьера(взял с инета) С другой стороны, а уверены ли вы в достоверности этих координат? 0 Share this post Link to post Share on other sites