Този урок ще говорим за използването на динамични зони, използващи Дълго плъгин.
Какви са предимствата? И това е много по-удобно да се използва динамична зона, можете да създадете таймер и да се провери всеки играч в определена позиция. А минуси. Изглежда, че те не са.
В Streamer'e има няколко вида динамична зони кръг. правоъгълник. сфера и куб. Кръгът и правоъгълник са създадени само на две оси: х и у. Следователно тези видове динамичен площ е огромна невидима полюс, са по-нависоко. С една дума, на височината в тези области не го правят. Но сферата и куба има височина, която е много по-удобно.
Нека разгледаме функцията, за да ги създаде.
CreateDynamicCircle (Поплавък: х, поплавък: Y, флоат: размер, worldid, interiorid, playerid); - създаване на зона във формата на кръг. За това е необходимо само х и у координира, както и размерът на радиуса в тази област.
CreateDynamicRectangle (Поплавък: кокетка, флоат: miny, поплавък: Maxx, флоат: Maxy, worldid, interiorid, playerid); - създаване на зона под формата на правоъгълник. За тази зона, ще трябва да се знае координатите на ъглите на противоположности.
CreateDynamicSphere (Поплавък: х, флоат: Y, поплавък: Z, флоат: размер, worldid, interiorid, playerid); - създаване на зона във формата на сфера. За необходимата височина на зона по Z-ос и радиуса на сферата, която искате да създадете.
CreateDynamicCube (Поплавък: кокетка, флоат: miny, флоат: Minz, флоат: Maxx, флоат: Maxy, флоат: maxz, worldid, interiorid, playerid); - създаване на зона на куб (паралелепипед). За да направите това, трябва да има минимална и максимална височина на оста Z.
Всяка една от тези функции връща DSA ID следователно, те могат да бъдат приложени към променливите.
обществен OnGameModeInit ()
zone51 = CreateDynamicCube (- 13,0555 1702,1824 15,0 405,9110 2071,6646 850,0 0. 0. - 1 ......); // виртуален свят - 0, интериор - 0, за всички играчи
върне 1;
За динамичните области, има два callback'a: OnPlayerEnterDynamicArea (playerid, areaid) и OnPlayerLeaveDynamicArea (playerid, areaid) - влизането и напускането на DSA. Areaid - ID е динамична област. Как да го определят, е написано по-горе.
Примери за прости употреба:
обществен OnGameModeInit ()
zone51 = CreateDynamicCube (- 13,0555 1702,1824 15,0 405,9110 2071,6646 850,0 0. 0. - 1 ......); // виртуален свят - 0, интериор - 0, за всички играчи
върне 1;
>
обществен OnPlayerEnterDynamicArea (playerid. areaid)
ако (areaid == zone51) SendClientMessage (playerid, - 1. "Оставете ohryanyaemuyu зона В противен случай ще бъде уволнен ..");
върне 1;
>
обществен OnPlayerLeaveDynamicArea (playerid. areaid)
ако (areaid == zone51) SendClientMessage (playerid, - 1. "Благодаря ви за разбирането.");
върне 1;
>
- DestroyDynamicArea (areaid); - динамичен зона унищожаване.
- IsValidDynamicArea (areaid); - проверка на наличието на динамичен район с това ID.
- TogglePlayerDynamicArea (playerid, areaid, превключване); - скриване на динамични зони за играча.
- TogglePlayerAllDynamicAreas (playerid, превключване); - скриване на всички динамични зони за играча.
- IsPlayerInDynamicArea (playerid, areaid); - проверка за намиране на играчи в динамична зона с конкретно име.
- AttachDynamicAreaToPlayer (areaid, playerid); - поставяне на динамична зона със специфичен ID на играча.
- AttachDynamicAreaToVehicle (areaid, vehicleid); - поставяне на динамична зона със специфичен ID към колата.
- DestroyAllDynamicAreas (); - унищожаването на всички динамични зони.
- CountDynamicAreas (); - преброяване на броя на динамични зони.
Внимание! За играчите и машините може да бъде свързана само с вида на площ кръг и сфера.
Обичам те mxIni Mysql