PDA

Просмотр полной версии : [Вопрос] ворота дома



Kurbanoff
11.10.2015, 16:12
Здравствуйте ув.мастеры скриптинга
Сегодня подумал что то сделать новое и сделал для себя хороший дом , но теперь хочу устанавливать вороты , и вороты открывались только для меня при сигнале с помощи клавиш (H) , посмотрел на коды других шлагбаум , решил сделать так но вылез 3 ERRORS'a


#define ASQ1 "Fara_Kurbanov"

ко всем new


new hfara[0];



if (strcmp(cmd, "/opengate", true)==0 || strcmp(cmd, "/og", true)==0 || strcmp(cmd, "/mopen", true)==0)
{
if(IsPlayerConnected(playerid))
{
if(OGReset[playerid] > 0) return true;
OGReset[playerid] = 2;
if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4)
{
if (PlayerToPoint(15, playerid,-2561.60009766,618.29998779,14.69999981))
//Где должен стоять игрок что бы ворота открывались (15 == это радиус отталкивается от координат , playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), 1823.19,-1861.68,15.025 == Y,X,Z координаты где должен стоять игрок (не забывайте про радиус!) ).
{
MoveObject(gatemedic, -2561.59960938,618.29980469,1.00000000, 2);
//куда будут двигаться ворота (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit, 1810.90,-1887.3,15.2 == координаты Y,X,Z куда двигаются ворота, 2 == скорость движения ворот (2 оптимальная))
SetTimer("gateactClose", 20000, 0);
gatetimeract = SetTimer("gateactClose", 20000, 0);
//Таймер открытия через сколько ворота закроются (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit,10000 == время через сколько закроются ворота(указываются в миллисекундах)
SendClientMessage(playerid, COLOR_RED," Ворота открылись. Они будут закрыты через 20 секунд.");
//отсылка игроку сообщение о том что гараж открылся (playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), COLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " ворота открылись. Они будут закрыты через 10 секунд." == содержимое самого сообщения ).
}
}
if(IsPlayerInRangeOfPoint(playerid, 12.0,286.0616,1821.0507,17.2128))
{
if(IsACop(playerid) || IsAArm(playerid) || PlayerInfo[playerid][pMember] == 7 || Masked[playerid] == 1)
{
MoveObject(vorota[0],285.62500000,1811.20446777,18.36432266,3.0,0.00000000,0.00000000,270.00000000);
MoveObject(vorota[1],285.62500000,1830.82177734,18.27965546,3.0,0.00000000,0.00000000,270.00000000);
SetTimer("GatePex", 4000, 0);
format(string, 90, "%s открывает ворота", PN(playerid));
return true;
}
else SendClientMessage(playerid,COLOR_GREY,"У вас нет ключей от этих ворот!");
}
if(IsPlayerInRangeOfPoint(playerid, 12.0,131.0000000,1940.5000000,18.7000000))
{
if(IsACop(playerid) || IsAArm(playerid) || PlayerInfo[playerid][pMember] == 7 || Masked[playerid] == 1)
{
MoveObject(vorota[2],125.0000000,1940.5000000,18.7000000,3.0,0.00000000,0.00000000,0.00000000);
MoveObject(vorota[3],144.8999900,1940.5000000,18.7000000,3.0,0.00000000,0.00000000,0.00000000);
SetTimer("GatePex", 4000, 0);
format(string, 90, "%s открывает ворота",PN(playerid));
return true;
}
else SendClientMessage(playerid,COLOR_GREY,"У вас нет ключей от этих ворот!");
}
else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
{
if(strcmp(PN(playerid),ASQ1, true) == 0)
{
MoveObject(hfara[1],314.8999900,-1192.9000000,77.0000000, 3);
SetTimer("hfara", 7000, 0);
}
}

void createobjects()


hfara[0] = CreateObject(975,321.3999900,-1188.2000000,77.0000000,0.0000000,0.0000000,38.0000000);




void hfara()
{
MoveObject(hfara[0], 314.8999900,-1192.9000000,77.0000000, 3);
return 0;
}

Это первая моя (для меня уникальная работа) работа , ну вот и Москва не сразу строилась , и мой дом ! :D
Прошу помочь с этим ибо указать где находиться мои ошибки !
Всем спасибо (заранее)

Геннадий Акимов
11.10.2015, 16:18
Если ворота только для тебя то зачем тебе ?

if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4)

- - - Добавлено - - -

у бери проверку на фракцию а поставь на ник или уровень админки

if(PlayerInfo[playerid][pAdmin] < 4
так помоему

Kurbanoff
11.10.2015, 16:23
Если ворота только для тебя то зачем тебе ?

if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4)

- - - Добавлено - - -

у бери проверку на фракцию а поставь на ник или уровень админки

if(PlayerInfo[playerid][pAdmin] < 4
так помоему

Извини если я уберу эти проверки , то потом у меня вороты которые стоят во фракции перестанут работать для тех кто состоит в той фракции и не будет открывать
Прошу рассмотреть код сначала , там закрыты все скобки и вороты отдельные
Я скинул вам весь код для вороты а то что делал я вот это:


else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
{
if(strcmp(PN(playerid),ASQ1, true) == 0)
{
MoveObject(hfara[1],314.8999900,-1192.9000000,77.0000000, 3);
SetTimer("hfara", 7000, 0);
format(string, 90, "%s открывает ворота", PN(playerid));
return true;
}
}

Osetin
11.10.2015, 16:38
А сами ошибки трудно скинуть?

Геннадий Акимов
11.10.2015, 20:30
Извини если я уберу эти проверки , то потом у меня вороты которые стоят во фракции перестанут работать для тех кто состоит в той фракции и не будет открывать
Прошу рассмотреть код сначала , там закрыты все скобки и вороты отдельные
Я скинул вам весь код для вороты а то что делал я вот это:


else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
{
if(strcmp(PN(playerid),ASQ1, true) == 0)
{
MoveObject(hfara[1],314.8999900,-1192.9000000,77.0000000, 3);
SetTimer("hfara", 7000, 0);
format(string, 90, "%s открывает ворота", PN(playerid));
return true;
}
}


Я так и не понял ворота для тебя или фракции ?

Kurbanoff
11.10.2015, 21:06
UPDATE:
ко всем #define


#define ASQ1 "Fara_Kurbanov"

ко всем new


new hfara[1];

к команду /opengate (чуть выше есть данная команда)


else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
{
if(strcmp(PN(playerid),ASQ1, true) == 0)
{
MoveObject(hfara[0],321.3999900,-1188.2000000,77.0000000, 3);
SetTimer("hfaragateclose", 7000, 0);
format(string, 90, "%s открывает ворота", PN(playerid));
return true;
}
}

в void CreateObjects() ( здесь созданы все вороты для фракции )


hfara[0] = CreateObject(975,321.3999900,-1188.2000000,77.0000000,0.0000000,0.0000000,38.0000000);

в конце мода (у меня такая функция void)


void hfaragateclose()
{
MoveObject(hfara[0], 321.3999900,-1188.2000000,77.0000000, 3);
return 0;
}


После эти у меня ошибки не остались , но однако , у меня ворота все таки не открывается , прошу помочь с этим

Я так и не понял ворота для тебя или фракции ?
Ворота лично для меня , для своего дома
По идеи функция должна была работать так: приближаюсь к своему дому ( то есть к вороту ) при нажатие буквы " H " ворота должна открываться , после 7 секунды закрываться , но однако когда я приближаюсь к своему дому и нажимаю сигнал (по умол. H) ворота не открывается !


А сами ошибки трудно скинуть?
У меня ошибки не остались , но сама функция не рабочая ибо я неправильно что то построил =)

Kurbanoff
12.10.2015, 14:30
Проблема актуальна , может поделись со своими идеями или же примером ?
Или можете мануал о том как сделать вороту открытым / закрытым ?

Bady
12.10.2015, 18:01
new GateHome[2];

if((newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH))//H
{
if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return true;
//------------------------------------------------------------------
if(!strcmp(PN(playerid),ASQ1, true) == 0) return true;
if(!IsPlayerInRangeOfPoint(playerid,8.0,96.8000,1924.6000,18.1420)) return true;
if(GateHome == 0)
{
MoveObject(hfara[0],321.3999900,-1188.2000000,77.0000000, 2.5);
GateHome = 1;//открыто
return true;
}
else
{
MoveObject(hfara[0],321.3999900,-1188.2000000,77.0000000, 1.0);
GateHome = 0;//закрыто
return true;
}
return true;
}

L0ndl3m
12.10.2015, 18:37
Bady, переменная GateHome должна быть массивом.

Unreal
12.10.2015, 19:21
мы вроде разбирали это на уз проекте, команда del, так не учишься значит ?

Bady
12.10.2015, 22:42
Bady, переменная GateHome должна быть массивом.
Не заметил, спасибо, исправил!

Kurbanoff
18.10.2015, 13:56
мы вроде разбирали это на уз проекте, команда del, так не учишься значит ?
Че че ?