[Урок 3] Константы и макросы - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок 3] Константы и макросы
_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 .
  • Страница 1 из 1
  • 1
Поиск: