PDA

Просмотр полной версии : [Вопрос] убрать все в #include



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

DeimoS
12.02.2018, 11:36
Возможно все stock и некоторые public убрать в includ

Возможно. Просто создаёшь отдельный файл и помещаешь туда нужный код.
Если это отдельные функции, подключение инклуда должно происходить вне остальных функций.

//Инклуд "test.inc"
stock SomeFunc()
{
print("test");
return 1;
}

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

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


//Мод
public OnGameModeInit()
{
new test = 1;
printf("test == %d", test);
return 1;
}



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

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



То как тогда вызывать его в OnGameModeInit()

Можно по разному. Либо как я показал во втором примере, либо создать дополнительную функцию и уже её вызвать в нужном месте


//Мод
public OnGameModeInit()
{
new test = 1;
printf("test == %d", test);
return 1;
}



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

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




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

Команды убираются так, как я показал в первом примере.


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