Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Объясните пожалуйста
Darkeneez Дата: Понедельник, 03.06.2013, 07:26:35 | Сообщение # 1
Сообщений: 221
Репутация: 18 [ +/- ]
Я немного не понимаю в чем разница между public и stock, когда создаешь свою функцию. Например я вызываю свою функцию

FunctionKick(client, steam_client, message_client);

public FunctionKick(client, const String:steam_client[], const String:message_client[])
{
new String:steamclient[MAXSIZE];

GetClientAuthString(client, steamclient, MAXSIZE);

if (strcmp(steam_client, steamclient) == 0)
{
if (IsClientInGame(client))
{
PrintToChat(client, "\x03[NickProtector] Проверка ника прошла успешно!");
}
}
else
{
KickClient(client, message_client);
}

return 0;
}

Можно ведь было сделать тоже самое написав вместо public stock? Вот только что изменилось бы?
 
horr0r Дата: Понедельник, 03.06.2013, 08:03:05 | Сообщение # 2
Сообщений: 149
Репутация: 40 [ +/- ]
stock - работает быстрее (как я знаю). И если ты его нигде не вызываешь, компилятор его не видит(даже если в нем ошибки). И скрипт меньше будет весить.
 
sssw Дата: Понедельник, 03.06.2013, 10:53:47 | Сообщение # 3
Сообщений: 123
Репутация: 14 [ +/- ]
Я знаю что public и stock это модификатор доступа к функции

Если функция public она может вызвана из вне- sourcemod-ом/расширением/Другим-плагином.
Например OnClientPutInServer() или public Action:Timer(Handle:Timer) вызываются. sourcemod-ом без доступа public их не вызвать ему.

А если stock наверно компилятор решает какой длины будет выделено в памяти место для её выполнения на этапе компиляции а не выполнения. А так я сам не знаю.


Сообщение отредактировал sssw - Понедельник, 03.06.2013, 10:59:59
 
  • Страница 1 из 1
  • 1
Поиск: