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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±

    убрать все в #include

    Всем привет.
    Хочу узнать кое что.
    Возможно все stock и некоторые public
    убрать в includ
    То как тогда вызывать его в OnGameModeInit()
    или в конец мода
    #include "test.inc"
    и так же команды на DC_CMD, чтобы убрать их в инклуд как сделать? просто создать строчку и в папке инклуде сам инклуд с этими командами и в моде подключить в конце #include "test.inc"
    или как то перехваты делать или что то еще нужно будет дописывать?

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Vasya_Pupkin Посмотреть сообщение
    Возможно все stock и некоторые public убрать в includ
    Возможно. Просто создаёшь отдельный файл и помещаешь туда нужный код.
    Если это отдельные функции, подключение инклуда должно происходить вне остальных функций.
     Пример:
    PHP код:
    //Инклуд "test.inc"
    stock SomeFunc()
    {
        print(
    "test");
        return 
    1;
    }

    //Мод
    public OnGameModeInit()
    {
        return 
    1;
    }
    #unclude <test> 
    /* 
        Вначале ты подключишь инклуд или в конце - не так важно, если в инклуде нет зависимостей от каких-то глобальных переменных/функций 
        Если же, например, в моде есть переменная "variable" и она используется в функциях, кто убраны в инклуд, то инклуд нужно подключать после этой переменной
    */ 


    Если это часть кода функции, то уже инклуд подключается в ту функцию, откуда этот код был взят
     Пример:

     До
    PHP код:
    //Мод
    public OnGameModeInit()
    {
        new 
    test 1;
        
    printf("test == %d"test);
        return 
    1;


     После

    PHP код:
    //Инклуд "test.inc"
        
    new test 1;
        
    printf("test == %d"test);

    //Мод
    public OnGameModeInit()
    {
        
    #include <test>
        
    return 1;




    Цитата Сообщение от Vasya_Pupkin Посмотреть сообщение
    То как тогда вызывать его в OnGameModeInit()
    Можно по разному. Либо как я показал во втором примере, либо создать дополнительную функцию и уже её вызвать в нужном месте
     Пример:

     До
    PHP код:
    //Мод
    public OnGameModeInit()
    {
        new 
    test 1;
        
    printf("test == %d"test);
        return 
    1;


     После

    PHP код:
    //Инклуд "test.inc"
    stock SomeFunc()
    {
        new 
    test 1;
        
    printf("test == %d"test);
        return 
    1;
    }

    //Мод
    #include <test>
    public OnGameModeInit()
    {
        
    SomeFunc();
        return 
    1;





    Цитата Сообщение от Vasya_Pupkin Посмотреть сообщение
    и так же команды на DC_CMD, чтобы убрать их в инклуд как сделать? просто создать строчку и в папке инклуде сам инклуд с этими командами и в моде подключить в конце #include "test.inc"
    Команды убираются так, как я показал в первом примере.


    Вообще просто стоит понять, что помещая код в инклуд и подключая его, ты не делаешь чего-то необычного. Просто весь код из инклуда поместится на место подключения инклуда при компиляции. И поместится он туда в том виде, в каком он есть в инклуде.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    Vasya_Pupkin (12.02.2018)
 

 

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

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

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

Ваши права

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