Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±

    ворота дома

    Здравствуйте ув.мастеры скриптинга
    Сегодня подумал что то сделать новое и сделал для себя хороший дом , но теперь хочу устанавливать вороты , и вороты открывались только для меня при сигнале с помощи клавиш (H) , посмотрел на коды других шлагбаум , решил сделать так но вылез 3 ERRORS'a
    PHP код:
    #define ASQ1      "Fara_Kurbanov" 
    ко всем new
    PHP код:
    new hfara[0]; 
    PHP код:
        if (strcmp(cmd"/opengate"true)==|| strcmp(cmd"/og"true)==|| strcmp(cmd"/mopen"true)==0)
        {
            if(
    IsPlayerConnected(playerid))
            {
                if(
    OGReset[playerid] > 0) return true;
                
    OGReset[playerid] = 2;
                if(
    PlayerInfo[playerid][pLeader] == || PlayerInfo[playerid][pMember] == 4)
                {
                    if (
    PlayerToPoint(15playerid,-2561.60009766,618.29998779,14.69999981))
                    
    //Где должен стоять игрок что бы ворота открывались (15 == это радиус отталкивается  от координат , playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), 1823.19,-1861.68,15.025 ==  Y,X,Z  координаты где должен стоять игрок (не забывайте про радиус!) ).
                    
    {
                        
    MoveObject(gatemedic, -2561.59960938,618.29980469,1.000000002);
                        
    //куда будут двигаться ворота (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit, 1810.90,-1887.3,15.2 == координаты Y,X,Z куда двигаются ворота,  2 == скорость движения ворот (2 оптимальная))
                        
    SetTimer("gateactClose"200000);
                        
    gatetimeract SetTimer("gateactClose"200000);
                        
    //Таймер открытия через сколько ворота закроются (gateactekos == переменная которой мы обозначили объект в public OnGameModeInit,10000 == время через сколько закроются ворота(указываются в миллисекундах)
                        
    SendClientMessage(playeridCOLOR_RED," Ворота открылись. Они будут закрыты через 20 секунд.");
                        
    //отсылка игроку сообщение о том что гараж открылся (playerid == ид игрока для которого будет выполнятся эта функция (в данном случае для всех), COLOR_RED == это тот самый #define которым мы заменяли хекс-код = 0xAA3333AA *это как бы цвет, " ворота открылись. Они будут закрыты через 10 секунд." == содержимое самого сообщения ).
                    
    }
                }
                 if(
    IsPlayerInRangeOfPoint(playerid12.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"40000);
                        
    format(string90"%s открывает ворота"PN(playerid));
                        return 
    true;
                    }
                    else 
    SendClientMessage(playerid,COLOR_GREY,"У вас нет ключей от этих ворот!");
                }
                 if(
    IsPlayerInRangeOfPoint(playerid12.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"40000);
                        
    format(string90"%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),ASQ1true) == 0)
                    {
                        
    MoveObject(hfara[1],314.8999900,-1192.9000000,77.00000003);
                        
    SetTimer("hfara"70000);
                    }
                } 
    void createobjects()
    PHP код:
        hfara[0] = CreateObject(975,321.3999900,-1188.2000000,77.0000000,0.0000000,0.0000000,38.0000000); 
    PHP код:
    void hfara()
    {
        
    MoveObject(hfara[0], 314.8999900,-1192.9000000,77.00000003);
        return 
    0;

    Это первая моя (для меня уникальная работа) работа , ну вот и Москва не сразу строилась , и мой дом ! :D
    Прошу помочь с этим ибо указать где находиться мои ошибки !
    Всем спасибо (заранее)
    Последний раз редактировалось Kurbanoff; 11.10.2015 в 16:16.
    level in scripting: beginner

  2. #2
    Аватар для Геннадий Акимов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2015
    Адрес
    СССР
    Сообщений
    46
    Репутация:
    1 ±
    Если ворота только для тебя то зачем тебе ?
    PHP код:
     if(PlayerInfo[playerid][pLeader] == || PlayerInfo[playerid][pMember] == 4
    - - - Добавлено - - -

    у бери проверку на фракцию а поставь на ник или уровень админки
    PHP код:
     if(PlayerInfo[playerid][pAdmin] < 
    так помоему


    С уважением ваш Геннадий Акимов

    Официальная группа в контакте проекта Sprunk: Перейти
    Официальный сайт проекта Sprunk: В разработке
    Примерная дата открытие проекта Sprunk: 1.12.2015

  3. #3
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±
    Цитата Сообщение от Геннадий Акимов Посмотреть сообщение
    Если ворота только для тебя то зачем тебе ?
    PHP код:
     if(PlayerInfo[playerid][pLeader] == || PlayerInfo[playerid][pMember] == 4
    - - - Добавлено - - -

    у бери проверку на фракцию а поставь на ник или уровень админки
    PHP код:
     if(PlayerInfo[playerid][pAdmin] < 
    так помоему
    Извини если я уберу эти проверки , то потом у меня вороты которые стоят во фракции перестанут работать для тех кто состоит в той фракции и не будет открывать
    Прошу рассмотреть код сначала , там закрыты все скобки и вороты отдельные
    Я скинул вам весь код для вороты а то что делал я вот это:
    PHP код:
                else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
                {
                        if(
    strcmp(PN(playerid),ASQ1true) == 0)
                    {
                        
    MoveObject(hfara[1],314.8999900,-1192.9000000,77.00000003);
                        
    SetTimer("hfara"70000);
                        
    format(string90"%s открывает ворота"PN(playerid));
                        return 
    true;
                    }
                } 
    level in scripting: beginner

  4. #4
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    А сами ошибки трудно скинуть?

  5. #5
    Аватар для Геннадий Акимов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2015
    Адрес
    СССР
    Сообщений
    46
    Репутация:
    1 ±
    Цитата Сообщение от Kurbanoff Посмотреть сообщение
    Извини если я уберу эти проверки , то потом у меня вороты которые стоят во фракции перестанут работать для тех кто состоит в той фракции и не будет открывать
    Прошу рассмотреть код сначала , там закрыты все скобки и вороты отдельные
    Я скинул вам весь код для вороты а то что делал я вот это:
    PHP код:
                else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
                {
                        if(
    strcmp(PN(playerid),ASQ1true) == 0)
                    {
                        
    MoveObject(hfara[1],314.8999900,-1192.9000000,77.00000003);
                        
    SetTimer("hfara"70000);
                        
    format(string90"%s открывает ворота"PN(playerid));
                        return 
    true;
                    }
                } 
    Я так и не понял ворота для тебя или фракции ?


    С уважением ваш Геннадий Акимов

    Официальная группа в контакте проекта Sprunk: Перейти
    Официальный сайт проекта Sprunk: В разработке
    Примерная дата открытие проекта Sprunk: 1.12.2015

  6. #6
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±
    UPDATE:
    ко всем #define
    PHP код:
    #define ASQ1       "Fara_Kurbanov" 
    ко всем new
    PHP код:
    new hfara[1]; 
    к команду /opengate (чуть выше есть данная команда)
    PHP код:
                else if(PlayerToPoint(15.0,playerid,226.4816,1872.5155,13.7344))
                {
                        if(
    strcmp(PN(playerid),ASQ1true) == 0)
                    {
                        
    MoveObject(hfara[0],321.3999900,-1188.2000000,77.00000003);
                        
    SetTimer("hfaragateclose"70000);
                        
    format(string90"%s открывает ворота"PN(playerid));
                        return 
    true;
                    }
                } 
    в void CreateObjects() ( здесь созданы все вороты для фракции )
    PHP код:
        hfara[0] = CreateObject(975,321.3999900,-1188.2000000,77.0000000,0.0000000,0.0000000,38.0000000); 
    в конце мода (у меня такая функция void)
    PHP код:
    void hfaragateclose()
    {
        
    MoveObject(hfara[0], 321.3999900,-1188.2000000,77.00000003);
        return 
    0;



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


    Цитата Сообщение от Osetin Посмотреть сообщение
    А сами ошибки трудно скинуть?
    У меня ошибки не остались , но сама функция не рабочая ибо я неправильно что то построил =)
    Последний раз редактировалось Kurbanoff; 11.10.2015 в 21:12.
    level in scripting: beginner

  7. #7
    Аватар для Kurbanoff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2015
    Сообщений
    73
    Репутация:
    2 ±
    Проблема актуальна , может поделись со своими идеями или же примером ?
    Или можете мануал о том как сделать вороту открытым / закрытым ?
    level in scripting: beginner

  8. #8
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    PHP код:
    new GateHome[2]; 
    PHP код:
    if((newkeys KEY_CROUCH) && !(oldkeys KEY_CROUCH))//H
    {
        if(!
    IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return true;
        
    //------------------------------------------------------------------
        
    if(!strcmp(PN(playerid),ASQ1true) == 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.00000002.5);
            
    GateHome 1;//открыто
            
    return true;
        }
        else
        {
            
    MoveObject(hfara[0],321.3999900,-1188.2000000,77.00000001.0);
            
    GateHome 0;//закрыто
            
    return true;
        }
        return 
    true;

    Последний раз редактировалось Bady; 12.10.2015 в 22:42.

  9. #9
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Bady, переменная GateHome должна быть массивом.

  10. #10
    Аватар для Unreal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    133
    Репутация:
    4 ±
    мы вроде разбирали это на уз проекте, команда del, так не учишься значит ?

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •