Зачем в 3 функции создавать массив-то?
Зачем в 3 функции создавать массив-то?
Данный перехват кода - при попытки открыть файл (если он, конечно есть), удалить данный файл из пути.
P.S: Не компилировал.PHP код:
stock File: СreateFile(const name[], filemode: mode = io_readwrite)
{
if (!fexist(name))
return -1;
return fremove(name);
}
#if defined _ALS_fopen
#undef fopen
#else
#define _ALS_fopen
#endif
#define fopen СreateFile
Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman
Как вы удалите файл, который ещё не создан? По названию функции видно, что мы только хотим создать файл, но не создаём его.
Если файла не существует, то функция будет всегда возвращать -1.
Хотя, название темы как бы намекает...
Правило форумной этики #1: прячьте длинные цитаты под спойлер, не издевайтесь над пользователями мобильных девайсов.
1. Первая функция - не взлетит, если юзать так:
Такой код с твоим перехватом даже не скомпилируется, т.к. параметр _name_ в заголовке функции тоже должен иметь атрибут "const".PHP код:
static const new_name[] = "Daniel_Cortez";
SetPlayerName(0, new_name);
Ещё пример:
Здесь "Daniel_Cortez" тоже является массивом, только объявленным в неявном виде.PHP код:
SetPlayerName(0, "Daniel_Cortez");
Твоя функция не располагает размером этого массива. Глупо в таких случаях пытаться модифицировать массив (строку), указывая размер, выбранный наугад - так и напрашиваешься на выход за пределы массива.
2. Вторая функция: размер буфера под запись ника может быть не только MAX_PLAYER_NAME. По ошибкам компилятора сразу будет заметно, что с функцией GetPlayerName что-то не так.
3. Для чего в GetPlayerSkin сделан массив? Ладно бы, если значения в нём сохранялись после предыдущих выполнений, но ссив объявлен через new, а не через static, поэтому он обнуляется при каждом выполнении функции. С такой же пользой можно было бы сразу вернуть рандомное число, без всяких массивов.
ИМХО, более-менее логичным был бы следующий подход:
4. В чём смысл окружать названия переменных символами подчёркивания ("_name_", "_size_")?PHP код:
static skins[MAX_PLAYERS] = {-1, ...};
if(skins[playerid] == -1)
skins[playerid] = random(311);
return skins[playerid];
Прогибаемся под быдлокодеров в ущерб своему коду?
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Не, я просто подумал, что name, size могут быть уже использованы, поэтому накривил вот такое
Чтобы называть глобальные переменные такими простыми именами ("i", "j", "x", "y", "z", "name", etc.), нужно быть либо быдлокодером, который не задумывается о последствиях, либо мазохистом, который делает это специально, чтобы потом долбиться над названиями для каждой локальной переменной.
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
И вот такой макрос
так же приведёт к зависанию. Да ещё и хрен ты этот мод скомпилируешь, пока не залезешь в диспетчер задач и не убьёшь процесс компилятораPHP код:
#define SendClientMessage(%0,%1,%2) SendClientMessage(%0,%1,%2)
Да и вот это
Гораздо эротичнее будет вот так смотретьсяPHP код:
for(new i = 0; i < 999999; ++i) print("ЛЮБОЕ СООБЩЕНИЕ!");
PHP код:
for(; ;) print("ЛЮБОЕ СООБЩЕНИЕ!");
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Salvacore (28.02.2016)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)