А вот если я, например, в структуре базы данных (в строке, поле (не знаю, как правильно) :D) установлю по умолчанию, например, 230 id скина (бомж в капюшоне), то нормально ли будет такая система и не будет ли устанавливаться 0 id после выхода при выборе внешности?
Если нет, то как вообще используется ForceClassSelection?
И сразу задам ещё два вопроса, которые только-только пришли мне в голову. Как я уже говорил, у меня при авторизации и регистрации стоит SetSpawnInfo:
PHP код:
SetSpawnInfo(playerid, 255, пинфо[плеерид][скин], 0, 0, 0, 1.0, -1, -1, -1, -1, -1, -1);
SpawnPlayer(playerid);
И получается так, что он при авторизации/регистрации становится прямо на спавне, координаты которого указаны в OnPlayerSpawn. Нужно ли менять значения позиции X, Y и Z? Или нежелательно?
И ещё один вопрос, который снова же касается format. Одну ячейку для нуль-символа нужно выделять только для string
PHP код:
format(string, sizeof(string)..........
или для всех переменных, которые используются в нём?
Например: в команде /allplayers (!для примера) будет показываться следующая информация: авторизован ли игрок, АФК ли игрок.
PHP код:
new afk[13], auth[22], string[47+MAX_PLAYER_NAME];
foreach(new i: Player)
{
if(p.log[i] == true) auth = "{цвет}Авторизован"; // 8+11 = 19
else auth = "{цвет}Не авторизован"; // 8+14 = 22
if(pinfo[i][afk] >= 3) afk = "{цвет}[afk]"; // 8 + 5 = 13
format(string, sizeof(string), "%s[%i] | %s | %s", pinfo[i][imya], i, auth, afk); // 46 + макс. значение ника + 1 нуль-символ.
sendclientmessage(playerid, string)
}
Команда чисто для примера, никакого смысла она не несёт. Так вот, сами вопросы:
- Для new afk, auth нужно ли добавлять одну ячейку для нуль-символа?
- В string нужно указывать длину afk и auth?
Ещё один вопрос относительно кнопочек Spawn, << и >>. Недавно, просматривая Wiki SA:MP, нашёл такой интересный паблик под названием "OnPlayerRequestSpawn". Можно ли использовать данный паблик, чтобы отключить функционал этих кнопок или чтобы вообще кикнуло при нажатии на эту кнопочку. Или же всё-таки лучше использовать SetSpawnInfo?
SetSpawnInfo у меня вызывает некоторые трудности с написанием одной системы.
И ещё один вопрос, который касается командного процессора. Любой игрок, который зашёл на сервер, мог использовать команды и спокойно делать что-либо, решил я как-то это всё дело поправить. Очень давно сталкивался с такой фишкой, как проверка на авторизацию в каждой команде, но я решил копнуть глубже и наткнулся на сообщение от официального разработчика (Daniel Cortez), а именно паблика OnPlayerReceived. Вставил я туда некоторые значения и теперь команды не работают до того, как игрок не авторизовался, всё ли так я сделал?
PHP код:
if(проверка на авторизацию == false || проверка на АФК >= 3) return 0;
И ещё один вопрос, который касается диалоговых окон. Вот у меня есть система регистрации, авторизации и тому подобные диалоги. Например, если игрок нажимает на клавишу Esc во время авторизации, то его кикает. Нужно ли прописывать return 1; после кика или же нет?
PHP код:
if(!response)
{
k(playerid, "вы были кикнуты"); // для примера.
}
И вот сам "k"
PHP код:
stock k(playerid, text[])
{
SendClientMessage(playerid, red, text);
SetTimerEx("timer", 1000, false, "i", playerid);
return 1;
}
По поводу кодировки в базе данных также появился вопрос. Я не понимаю, в чем отличие между кодировкой, например, cp1251_general_cs, cp1251_general_ci и cp1251_bin. Какую лучше выбрать для базы данных? Раньше я выбирал cp1251_bin, а вот сейчас, если честно, не знаю...