 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Вопрос по функции
| |
| raen | Дата: Четверг, 31.01.2008, 06:03 | Сообщение # 1 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 785
Награды: 25
Город: PакунСити
Репутация: 154
Замечания: 20%
Статус: 
| Допустим у меня в ФС есть предмет с определёнными координатами Predmet = CreateObject(9999, 1910.573242, -2410.296875, 27.691931, 0.0000, 0.0000, 0.0000); После применения команды /UP Данный предмет движется вверх и в определённой точке останавливается. if (strcmp(cmdtext, "/UP", true) == 0) { MoveObject(Predmet, 1910.573242, -2410.296875, 161.958450, 3); SendClientMessage(playerid, 0xDEEE20FF, "VERX!"); return 1; } После применения команды /down Данный предмет дижется вниз на начальную позицию if (strcmp(cmdtext, "/DOWN", true) == 0) { MoveObject(Predmet, 1910.573242, -2410.296875, 27.691931, 3); SendClientMessage(playerid, 0xDEEE20FF, "VNIZ!"); return 1; Как мне сделать чтобы предмет двигался постоянно (автоматически) в верх и вниз, без применения команд, что нужно добавить в код ?
- Social Roleplay - ucp.gtamir.ru - 77.220.182.241:7777
Сообщение отредактировал raen - Четверг, 31.01.2008, 06:36 |
| |
|
|
| EKup | Дата: Четверг, 31.01.2008, 12:06 | Сообщение # 2 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 75
Награды: 2
Город: Ульяновск
Репутация: 10
Замечания: 0%
Статус: 
| Есть много способов. Вот пример: Code #include <a_samp>
const Interval = 10; //интервал движения предмета(в секундах)
public OnGameModeInit() { new Predmet = CreateObject(9999, 1910.573242, -2410.296875, 27.691931, 0.0000, 0.0000, 0.0000); //вызываем таймер. Он сработает один раз(предмет поднимется) и создаст другой таймер SetTimerEx("MovePredmet", Interval*1000, 0, "dd", Predmet, 1); }
//сама функция, двигающая предмет. //predmetID - ид предмета //upDown - направление. 1- вверх. 0 - вниз public MovePredmet(predmetID, upDown) { if(upDown == 1) { MoveObject(predmetID, 1910.573242, -2410.296875, 161.958450, 3); //ставим таймер на движение вниз. сработает через Interval секунд SetTimerEx("MovePredmet", Interval*1000, 0, "dd", predmetID, 0); } else { MoveObject(predmetID, 1910.573242, -2410.296875, 27.691931, 3); //ставим таймер на движение вверх. сработает через Interval секунд SetTimerEx("MovePredmet", Interval*1000, 0, "dd", predmetID, 1); } } Не проверял, но работать должен. Предмет будет подниматься, замирать на 10 секунд и опускаться. Через 10 секунд(после начала движения) опять подниматься. Если нужно, чтобы двигался без остановок, то в Interval поставь время его движения.
Текущая версия ERPG GM: 2.7.0 RC1(03.10.2009) http://3val.ru/games/samp/changelistServ.php
|
| |
|
|
| raen | Дата: Четверг, 31.01.2008, 12:56 | Сообщение # 3 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 785
Награды: 25
Город: PакунСити
Репутация: 154
Замечания: 20%
Статус: 
| Спс, разобрался, у меня есть ещё несколько вопросов. Как сделать чтобы предмет после того как доберётся до верха разворачивался на заданные градусы, я пробывал команду SetObjectRot(objectid, 0, 0, 28.4); но она не канает. Как задать несколько точек чтобы предмет двигался сначало к одной потом к другой и т.д. потом тоже самое только на оборот ? (в моём случае есть всего 2 точки конечная и начальная, а как добавить ещё несколько ? )
- Social Roleplay - ucp.gtamir.ru - 77.220.182.241:7777
Сообщение отредактировал raen - Четверг, 31.01.2008, 13:06 |
| |
|
|
| EKup | Дата: Суббота, 02.02.2008, 09:19 | Сообщение # 4 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 75
Награды: 2
Город: Ульяновск
Репутация: 10
Замечания: 0%
Статус: 
| Добавить еще режимов в вызов таймера. Сейчас туда передается вторым параметром 0 или 1. Можно сделать так, чтобы, например, было 1, 2, 3, 4. В начале предмет внизу и повернут. Ставится таймер с параметром 1 Вызов таймера с параметром 1: поворачивается на 90 градусов, и двигается вверх.(вызывается таймер со параметром 2) Вызов таймера с параметром 2 - поворачивается на 90 градусов и двигается вправо(вызывается таймер со параметром 3) Вызов таймера с параметром 3 - поворачивается на 90 градусов и двигается вниз(вызывается таймер со параметром 4) Вызов таймера с параметром 4 - поворачивается на 90 градусов и двигается влево(вызывается таймер со параметром 1) Это пример движения по вертикальному квадрату
Текущая версия ERPG GM: 2.7.0 RC1(03.10.2009) http://3val.ru/games/samp/changelistServ.php
|
| |
|
|
| Berendey | Дата: Суббота, 02.02.2008, 10:22 | Сообщение # 5 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 166
Награды: 1
Город: Москва
Репутация: -30
Замечания: 0%
Статус: 
| а можно пожалуйста сделать скрипт так чтобы открывался шлакбаун и закрывался,но чтобы его нельзя было открывть из далке,а надо толкьо рядом стоят чтобы открыть его,и еще можно,что шлакбаун сам закрывался через 5 секунд после его открытия,вот просто шлакбаун,котрый открываеться и закрываеться командами,можно добавить к нему то что я сказал.пожалуйста if (strcmp(cmdtext, "/open", true)==0) { SetObjectRot(gate1, 0, 0, -90); return 1; } if (strcmp(cmdtext, "/close", true)==0) { SetObjectRot(gate1, 0, -90, -90); return 1; }
main() { print("\n----------------------------------"); print(" Running Freeroam v 3.0 "); print("----------------------------------\n"); worldTime=12; }
|
| |
|
|
| raen | Дата: Вторник, 05.02.2008, 08:21 | Сообщение # 6 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 785
Награды: 25
Город: PакунСити
Репутация: 154
Замечания: 20%
Статус: 
| Вот есть команда: if(strcmp(cmdtext, "/ццц", true) == 0 || strcmp(cmdtext, "/ццц", true) == 0) { SetPlayerPos(playerid, 4084.183,-1116.719,16.111); GivePlayerWeapon(playerid,9,1); GivePlayerWeapon(playerid,31,600); GivePlayerWeapon(playerid,35,200); GivePlayerWeapon(playerid,34,200); SetCameraBehindPlayer(playerid); SendClientMessage(playerid, COLOR_RED, "ццц!"); return 1; Как указать чтоб игроки которые набирают эту команду респаунились в разных местах ? Т.е. что нужно сюда дописать чтобы было несколько точек респа игроков ?
- Social Roleplay - ucp.gtamir.ru - 77.220.182.241:7777
|
| |
|
|
|
 |
|
 | |
| |
|