_Edik_ |
Дата: Вторник, 25.11.2014, 13:31 | Сообщение # 1
|
Боец
Сообщений: 58
Статус: Offline
|
Доброе время суток с вами я _Edik_ прошу прощения что меня долго не было уезжал по работе в другую строну. Ну вот я вернулся и готов опять делать для вас уроки. ну что же сегодня урок пойдёт о Константы и макросы. Ну и как я всё время говорю "Поехали" Define – это директива позволяющая создавать константы и макросы. Константы, это неизменяемые переменные, они сильно упрощают работу скриптерам. Константой можно заменить трудно запоминающие элементы кода, такие как, например HEX-код цвета, которым выделяется строка. В SAMP есть множество встроенных констант. Перечислять их не буду их можно увидеть в файле, а_samp.inc. Приведу пример констант Код #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_ORANGE 0xFF8000AA #define COLOR_BRIGHTRED 0xDB0000F Эти константы можно использовать, например, в функции SendClientMessage, которая отправляет текстовое сообщение в чат. Теперь вместо того, чтобы писать вот так: Код SendClientMessage(playerid, 0xFFFF00AA,”Cheat Master”); Вы можете писать, вот так: Код SendClientMessage(playerid,COLOR_YELLOW,”Cheat Master”); Суть констант я думаю, теперь вам понятна, переходим к макросам. С помощью простейшего макроса можно упростить себе работу, например с таймером. Забежим немного вперед. В таймерах время указывается в миллисекундах, что не очень удобно. Чтобы писать время в секундах создадим макрос SetTimerx Код #define SetTimerx (%0,%1,%2) SetTimer(%0,%1*1000,%2) Но о таймерах вы узнаете в более позднем уроке, и мы все рассмотрим данный макрос на уроке по таймерам. Теперь о значении знака процента «%» с номером. Чтобы понять их значение рассмотрим следующий пример. Многие используют не стандартную функцию PlayerToPoint, которая по сути не лучше стандартной IsPlayerInRangeOfPoint. Разница функций лишь в том, что у их первые два параметра поменялись местами, а в остальном они одинаковы и выполняют одинаковую функцию. Так вот, допустим с помощью этого макроса мы хотим превратить все функции PlayerToPoint в стандартные функции IsPlayerInRangeOfPoint. Код #define PlayerToPoint(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%1,%0,%2,%3,%4) Номер перед знаком процента идентифицирует параметр по порядковому номеру. То есть параметр playerid у функции PlayerToPoint обозначен теперь – %0 (нулем), а параметр Float:radi обозначен – %1 (единицей). Обратите внимание, первые две цифры внутри скобок и тех и других поменялись местами. Это значит, что когда вы будете использовать данный макрос, функция PlayerToPoint будет заменена функцией IsPlayerInRangeOfPoint, а первые два параметра функции поменяются местами, чтобы соответствовать синтаксису стандартной функции. Ну что же вот и всё ребята с вами был я _Edik_ скоро выйдет следующий урок.
+
Сообщение отредактировал _Edik_ - Вторник, 25.11.2014, 13:32 |
|
|
|
[CM]Fors |
Дата: Суббота, 29.11.2014, 10:35 | Сообщение # 2
|
Боец
Сообщений: 72
Статус: Offline
|
Неплохо
|
|
|
|
skiez |
Дата: Суббота, 17.01.2015, 20:24 | Сообщение # 3
|
Боец
Сообщений: 66
Статус: Offline
|
[CM]Fors, пост набил. По теме : продолжай,+
|
|
|
|
[CM]Velasquez |
Дата: Воскресенье, 18.01.2015, 17:36 | Сообщение # 4
|
Любитель
Сообщений: 32
Статус: Offline
|
Информативно,спасио!
|
|
|
|
_Edik_ |
Дата: Суббота, 07.11.2015, 17:37 | Сообщение # 5
|
Боец
Сообщений: 58
Статус: Offline
|
Скоро опять вернусь в pawno), ждите новые уроки.
+
|
|
|
|
TheMo1sey |
Дата: Суббота, 07.11.2015, 22:48 | Сообщение # 6
|
Любитель
Сообщений: 32
Статус: Offline
|
Баян ,с павно бука V5 .
|
|
|
|