12:31
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Alcoholik  
[FAQ] Движение камеры при коннекте
SMOUKДата: Среда, 27.10.2010, 14:15 | Сообщение # 1
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Сделаем простенькую камеру для ГФ , хотя она подойдет и под другие моды.
Сам код данного способа по себе легкий. Поэтому для новичков в павн будет не трудно выполнить все этапы FAQ и при этом добиться успеха.

Ну чтож начнем.

Для начала создадим новый таймер.

Идем в public OnGameModeInit
У вас там будет около 9-ти таймеров, расположенных внизу паблика.
Добавляете ище один - SetTimer("Cam",100,1); (100 - милисекунды. 1 - Будет или не будет повторяться таймер. У нас 1 = будет. cam - название нашего паблика для выполнения какого либо дальнейшего кода)
По скольку в преднастройке таймера стоит значение 1 он будет повторять выполнение паблика Cam каждую милисекунду.
Благодаря этому мы и сделаем наше дельце ;)

Добавили ? Отлично.
Теперь ко всем new добавим следующие переменные:

new Float:CamX[MAX_PLAYERS];
new Float:CamY[MAX_PLAYERS];
new Float:CamZ[MAX_PLAYERS];
new Camtime[MAX_PLAYERS];

Таким образом наш скрипт выучил что такое CamY CamX CamZ Camtime.

Теперь идем в public OnPlayerRequestClass (мог ошибиться, но основу я дал)
Добавляем следующий код в начало паблика.

CamX[playerid] = 1987.1801;
CamY[playerid] = -1439.9788;
CamZ[playerid] = 217.5764;

Мы задаем значения коодинат в переменные созданные ранее. С них мы будем считывать координаты для начальной позиции камеры.
(Координаты свои. Можете сделать свои с помощью /save но для вида рекомендую сначало мои использовать т.к под них подстраиваеться дальнейший код движения камеры).

Далее идем в public OnPlayerConnect

И т.к мы хотим что бы наша камера начинала свои движения при подключении к серверу то добавляем такой кодик:

Camtime[playerid] = 1;

Далее идем в public OnPlayerSpawn
Добавляем следующее:

Camtime[playerid] = 0;

И если у вас нет в данном паблике функции SetCameraBehindPlayer то обязательно добавьте её иначе камера зависнит в воздухе а вы будите бегать Х знает где :)

SetCameraBehindPlayer(playerid); // Возвращает камеру игрока на стандартную позицию.

Всё это лучше кАнешно в начало добавлять.
Моды бывают разные.

Ну вот вроде бы мы создали небольшие закорючки для нашей с вами камеры.
Теперь нам необходимо написать код выполняющий движение камеры. он самый основной из нашего FAQ.
Да и легкий ... )

Создаем в конце мода public Cam()
Вобщем код движения камеры будет выглядеть примерно так:

Code
public Cam()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Camtime[i] >= 1) // омг.. В таймерах объяснял что это. )
{
CamX[i] -= 0.4; // Для того что бы вам было понятней - Ето скорость движения камеры. Не рекомендую лесть до 1.0. А вот 0.9 норм =_=
SetPlayerCameraPos(i,CamX[i],CamY[i],CamZ[i]); // Позиция нашей камеры которая в дальнейшем каждую милисекунду будет изменяться брав значения из переменных.
SetPlayerCameraLookAt(i,818.5380,-1402.7738,223.9858); // Куда наша камера - смотрит.
}
}
}
}// Скобкэ.. ^^

Ну вот и всё.
Вы можете изменить координаты и поднастроить камеру под них. (/save)

Напоминаю что камеры создают дополнительную нагрузку на сервер.
Но для хорошего хостинга это не проблема на мой взгляд ^^
И мода тоже ^^

Тестирование и разработка кода производилась на моде Cream Life 1.2
В случае обнаружении каких либо ошибок / багов сообщайте в данную тему.




Сообщение отредактировал SMOUK - Среда, 27.10.2010, 15:38
HELKERNДата: Среда, 27.10.2010, 14:52 | Сообщение # 2
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 767
Награды: 17
Город: Улан-Удэ
Репутация: 206
Замечания: 0%
Статус:
Quote (SMOUK)
if(Camtime >= 1)

У тебя же массив
Quote (SMOUK)
new Camtime[MAX_PLAYERS];

SMOUKДата: Среда, 27.10.2010, 15:35 | Сообщение # 3
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
А где ты увидел то это ?)

Добавлено (27.10.2010, 15:35)
---------------------------------------------
А всё, нашел.) Щас исправим.




Сообщение отредактировал SMOUK - Среда, 27.10.2010, 15:34
[exe]eccoДата: Среда, 27.10.2010, 17:16 | Сообщение # 4
Группа: Пользователи
Сообщений: 559
Награды: 3
Город: Киев
Репутация: 4
Замечания: 0%
Статус:
Молодец ++++получиш!!!


NY_AlexДата: Среда, 27.10.2010, 22:15 | Сообщение # 5
Уверенный в себе
Группа: Продвинутые
Сообщений: 163
Награды: 2
Город: Los Angeles
Репутация: -22
Замечания: 40%
Статус:
Молодец.
Quote (Ny_Alex)
Держи +

PustikДата: Вторник, 21.12.2010, 19:35 | Сообщение # 6
Группа: I'm V.I.P.
Сообщений: 1669
Награды: 129
Город: Кривой Рог
Репутация: 939
Замечания: 60%
Статус:
я захожу и у меня типо диологовое окно на серве и там написано типо что сток домов,бизов и тд и камера летит где то в деревне около дальнобоев
а потом когда нажимаешь ок и тебе типо надо вписывать пароль то уже там где надо

SMOUKДата: Вторник, 21.12.2010, 19:37 | Сообщение # 7
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Многие вещи зависят от твоего мода. Фак писался под Креам Лайв 1.2 (или 1.6)


GoshikДата: Вторник, 21.12.2010, 19:41 | Сообщение # 8
Уверенный в себе
Группа: Пользователи
Сообщений: 280
Награды: 1
Город: ---
Репутация: 18
Замечания: 60%
Статус:
Quote (SMOUK)
Креам Лайв 1.2

побыдлей мода не нашлось чтоли... таймер лучше создавать только для игроков у которых в данный момент должна двигаться камера(SetTimerEx), а не глобальныйм таймером на 100мсек х_Х

LiOn4ukДата: Вторник, 21.12.2010, 19:47 | Сообщение # 9
Местный
Группа: Продвинутые
Сообщений: 525
Награды: 12
Город: Beautiful City
Репутация: 688
Замечания: 0%
Статус:
SMOUK, хммм

Code
D:\gamemodes\GF.pwn(41228) : warning 235: public function lacks forward declaration (symbol "Cam")
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

Header size:          10628 bytes
Code size:          1940624 bytes
Data size:          6050680 bytes
Stack/heap size:      16384 bytes; estimated max. usage=5249 cells (20996 bytes)
Total requirements: 8018316 bytes

1 Warning.

Как исправить?))


лол.

Сообщение отредактировал LiOn4uk - Вторник, 21.12.2010, 19:47
Makar_PogorelovДата: Вторник, 21.12.2010, 20:21 | Сообщение # 10
Освоившийся
Группа: Пользователи
Сообщений: 75
Награды: 0
Город: Дзержинск
Репутация: 0
Замечания: 0%
Статус:
LiOn4uk, У меня такаяже хня тока с другим пабликом не стандартным выходит.А так это прост варн.
SMOUKДата: Вторник, 21.12.2010, 20:36 | Сообщение # 11
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Quote (Goshik)
побыдлей мода не нашлось чтоли... таймер лучше создавать только для игроков у которых в данный момент должна двигаться камера(SetTimerEx), а не глобальныйм таймером на 100мсек х_Х

Создай. Напиши фак.
Захер писать здесь очередной пост с тегами "ЯУМНИКПЛЯ".

Quote (LiOn4uk)
Как исправить?))

Форвард добавить. Я обычно на варны не обращаю внимание.




Сообщение отредактировал SMOUK - Вторник, 21.12.2010, 20:38
AndrejsДата: Вторник, 21.12.2010, 23:56 | Сообщение # 12
Группа: I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус:
SMOUK, вот как раз из-за не обращения внимания на варнинги выходят всякие глупые и нелепые ошибки.



[RGS]JAGUARДата: Среда, 22.12.2010, 17:36 | Сообщение # 13
Советчик
Группа: Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус:
Quote (SMOUK)
А где ты увидел то это ?)

[off]CTRL+C CTRL+V
fun fun fun [/off]



[/url]
Новая ICQ: 593922
Dima-kunДата: Среда, 22.12.2010, 17:51 | Сообщение # 14
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
Quote (SMOUK)
Создай. Напиши фак. Захер писать здесь очередной пост с тегами "ЯУМНИКПЛЯ".

а я с ним согласен.. цикл каждые 100 мс это напряжн для сервера... нужны хорошие ресурсы у хостера



Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
SMOUKДата: Среда, 22.12.2010, 22:21 | Сообщение # 15
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Quote (Morino_Reigan)
а я с ним согласен.. цикл каждые 100 мс это напряжн для сервера... нужны хорошие ресурсы у хостера

Я и сам не отрицаю но -

Quote
Сделаем простенькую камеру для ГФ

Всё же учту на будущее ваши замечания.. yes




Сообщение отредактировал SMOUK - Среда, 22.12.2010, 22:21
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua