Ну собсна должно быть всё понятно...
Пишите с какими функциями вам тяжело работать, может кто нибудь напишет урок...
И не пишите MySQL, врядли кто будет писать.
Ну собсна должно быть всё понятно...
Пишите с какими функциями вам тяжело работать, может кто нибудь напишет урок...
И не пишите MySQL, врядли кто будет писать.
Хотелось бы увидеть урок про TextDraw'ы. В каких случаях лучше создавать PlayerTextDraw, а в каких TextDraw и как правильно с ними обращаться.
В разделе: "Вопросы по скриптингу" часто встречались вопросы про TextDraw'ы.
Не знаю почему, но раньше трудно давалось их понять... Может что-нибудь новенькое узнаю, да и для других полезно будет.
Хотел бы увидеть урок про "Static/Const". Сейчас частенько стали всплывать мануалы с ними, а многие начинающие скриптеры даже и не знают как с ними обходиться. Я тоже не вникаю. Будет интересно почитать.
const - константа. Значение слова "константа" должно сказать само за себя. То есть, какое значение было заданно для переменной при создании, таковым оно будет всегда и изменению оно не подлежит. const не дает менять объекты, которые не должны меняться/
static - статичный/стационарный. Переменные типа static - это переменные так называемого долговременного хранения, то есть они хранят свои значения в пределах своей функции или файла.
То есть, если мы создадим локальную переменную с использованием спецификатора static - значение этой переменной будет хранится в памяти сервера даже после окончания обработки нашей функции (получится что-то типа глобальной переменной, которую можно использовать только внутри нашей функции, где её объявили).
Если же создавать глобальную переменную с использованием данного спецификатора - зона её видимости ограничится исключительно тем файлом, где была создана эта переменная. Например, если создать обычную переменную с именем "azaza" в инклюде, подключить инклюд к другому файлу и после создать в файле ещё одну такую переменную - компилятор начнёт ругаться на то, что имена переменных схожи (переменная уже объявлена). Если же проделать всё то же самое, только в инклюде использовать спецификатор static - предупреждения не будет, ибо наша переменная для компилятора будет создана только в инклюде и за его пределы не выйдет.
Как-то так. Информации слишком мало для отдельного урока :)
- - - Добавлено - - -
Ну всю информацию можно прочесть здесь - http://wiki.sa-mp.com/wiki/Textdraw
А вообще основное их различие только в лимитах.
То есть, глобальных текстдравов всего может быть создано 2048 штук. На первый взгляд этого кажется достаточно, но стоит вспомнить о том, что для отображения индивидуальной информации (уровень/статистика и т.п.) для игроков нужен отдельный текстдрав и сразу становится понятно, что 2048 штук хватит для ~20 индивидуальных текстдравов, если онлайн будет превышать 100 игроков. А это уже не так уж и много.
Так же глобальные текстдравы хранятся в памяти сервера до перезагрузки/выключения гейммода. То есть, если не удалять из памяти все наши 20 созданных текстдравов при выходе игрока, для переполнения памяти хватит и одного игрока на сервере, который перезайдёт 100 раз в игру. Поэтому тут очень важно отчищать память с помощь функции TextDrawDestroy в тот момент, когда нужный текстдрав больше не нужен на сервере вообще.
Локальные (PlayerTextDraw) же имеют лимит, который равен 256 для ИГРОКА. То есть, для каждого игрока можно создать 256 текстдравов. Если на сервере будет играть 1000 игроков, общее число текстдравов для них будет равно 256000 (но каждому всё равно можно будет создать только 256). Согласись, это уже не 2048 штук.
И локальные текстдравы сами удаляются из памяти при выходе игрока. Поэтому заморачиваться с их удалением не нужно.
Таким образом можно понять, что для текстдравов, в которых не будет хранится индивидуальная информация (адрес сайта/фон для спидометра и прочее), лучше использовать глобальные текстдравы. А уже текстдравы с индивидуальной информацией (скорость автомобиля/статистика убийств и т.п.) лучше создавать локальными. Тогда всё в вашей жизни будет хорошо :)
И да, под глобальными текстдравами я имел ввиду текстдравы, которые создаются TextDrawCreate в коллбэке OnGameModeInIt (при старте сервера). Под локальными я имел ввиду текстдравы, созданные с помощью CreatePlayerTextDraw в коллбэке OnPlayerConnect и прочих коллбэках, которые вызываются игроком.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)