21: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 из 1
  • 1
Модератор форума: AXE, Weddew  
Вопрос по функции
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
  • Страница 1 из 1
  • 1
Поиск:





 


 


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