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

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

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

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

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,078
    Репутация:
    1567 ±
    Цитата Сообщение от 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"
    Команды убираются так, как я показал в первом примере.


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

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

    Steve Pavlina

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

 

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

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

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

Ваши права

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