Pro пешка - пешка-портал на скриптове
Ние работим с "контролно-пропускателни пунктове".
В този урок, искам да кажа за контролно-пропускателни пунктове, с какво се хранят и как да ги прилагат. По принцип, въз основа на нашия урок, ние ще се опитаме да направим една проста работа. И така, нека започнем.
Какво е контролно-пропускателен пункт, и как да го създаде.
Какво точно е мястото за среща? Обяснявам на пръсти, контролно-пропускателен пункт - това е такъв червен знак, което се отразява на мини, независимо от разстоянието между играча и марката. Друга важна подробност е, че играчът може да бъде зададен само един видимо контролно-пропускателен пункт. И така, контролно-пропускателни пунктове са разделени на 2 вида са: нормални, пунктовете за играча, както и указатели в контролните точки. Тези пунктове изглеждат така:
Контролен обичайните марки за играча.
Checkpoint-показалка.
И все пак, как да създадете тези пунктове?
Добре. За да направите това, SA: MP съществува чифт функции, сега аз ще говоря за тях.
SetPlayerCheckpoint (.. Playerid флоат х флоат у флоат Z размер поплавък ......);
Тази функция се използва за създаване на обичайната етикета за един играч, със следните параметри се използват в него:
- playerid ID Player
- Float: х х-координатата на контролно-пропускателен пункт
- Float: у у-координатата на контролно-пропускателен пункт
- Поплавък: Z Z-координатата за пункт
- Float: размер контролно-пропускателен пункт
SetPlayerRaceCheckpoint (playerid. Тип. Поплавъка. X. поплавък. Y. поплавък. Z. поплавък. Nextx. Поплавъка. Nexty. Поплавъка. Nextz. Поплавъка. Размер)
Тази функция се използва за създаване на показалец марка за играча, със следните параметри се използват в него:
- playerid ID Player
- Вид тип metki.0 Нормално, 1-Finish, 2-Няма (Просто маркирате), 3-Tag общ пръстен, 4-пръстен-финала етикет
- Float: х X-координата
- Поплавък: Y Y-координатната
- Поплавък: Z Z-координатата
- Float: nextx X-координата на следващия етикета да се определи посоката на курсора (стрелката)
- Float: nexty Y-координатите на следващия етикет за определяне на посоката на курсора (стрелката)
- Float: nextz Z-координата на следващия етикета да се определи посоката на курсора (стрелката)
- Float: размер Размерът (диаметър) на етикета
Също така, да се работи "маркери" на предвидени няколко други функции (включително avtovyzyvaemyh).
Функцията се нарича, когато играч напусне индекс надценка създаден.
Също така, за да се създадат такива етикети, можете да използвате знаменца, но това е друга история ..
Сега ние всички знаем, ние се нуждаем от функция, за да се пишат прости скриптове, нека да преминем към следващата стъпка.
Използването на контролно-пропускателни пунктове "по случая."
Въз основа на знанията и изследването на функции, да ви напиша няколко прост скрипт, за да напълно да разберем, че едни и същи са тези пунктове. За да започнете, нека да поставим на задачата, например:
- Направете контролно-пропускателен пункт за играча, който стои на която той ще получи в ръцете на кутията, а след това ще се покаже етикета, където искате да носите тази кутийка.
- Направете показалка отпечатък върху отбора за един играч да достигне този играч ще се появи съобщение за достигане на марката.
И така, проблемът настроен, сега преминете към изпълнението естествено е в ред.
Нека да започнем да работим играч, създаване на екип / startwork.
ако (! strcmp (cmdtext. "/ startwork"))
<
ако (! GetPVarInt (playerid. "_work"))
<
DeletePVar (playerid "_in_hand".);
SetPVarInt (playerid "_work" 1 ..);
SendClientMessage (. Playerid - 1. "Работата е започнала.");
DisablePlayerCheckpoint (playerid); // Виж забележка 1 в края на темата.
SetPlayerCheckpoint (playerid 603.3618 820.8993, - 43.0697 2.0 ...);
>
още
<
DeletePVar (playerid "_work".);
DisablePlayerCheckpoint (playerid);
SendClientMessage (. Playerid - 1. "Работата е завършена.");
>
>
Сега, нека да тества играча отдясно откриваме в етикета. Ние правим това в pablike OnPlayerEnterCheckpoint. Ами, всъщност използването на този Обществен ще успеем играчът да вземете кутията и инсталиране на контролно-пропускателен пункт избор, или да се даде на кутията и инсталиране на запасите етикет.
Първата цел е постигната, ние се връщаме за втори.
За да зададете знака, ние ще използваме командата / ви Grotti, за нашия етикет ще има шоурума Grotti автомобила.
ако (! strcmp (cmdtext. "/ Grotti"))
DisablePlayerRaceCheckpoint (playerid); // Зее. Забележка 1 в края на темата.
SetPlayerRaceCheckpoint (playerid 1. 559.0508, - 1289,5999 17,2482 559,0508, - 1289,5999 17.2482 6.0 .....);
SendClientMessage (. Playerid - 1. "Tag-указател е настроен.");
върне 1;
>
Е, тогава, както е в случая с предишния ни цел, ние проверяваме да се намери играч в нашия етикет, този път от друг Обществен:
обществен OnPlayerEnterRaceCheckpoint (playerid)
ако (IsPlayerInRangeOfPoint (playerid 6.0 559.0508, - .. 1289,5999 17.2482).)
DisablePlayerRaceCheckpoint (playerid);
SendClientMessage (. Playerid - 1. "Tag-показалка извърши!");
>
върне 1;
>
Казвам и ще ви покаже всички основни функции на контролно-пропускателни пунктове, които те могат да използват, а също така доведе до няколко полезни примери. За съжаление в моя клас не е пример за използването на определени функции и извика, но аз мисля, че ще бъде в състояние да се разбере (с описание) за това, което правят. Всички примери съм дал на вас, са от по-ясно разбиране за това как да се използва "етикети" в случая. Това е всичко. На добър час.
P.S Може би сте забелязали в примерите препратка към бележките в края на темата. Не съм забравил за него, сега аз ще ви опиша няколко нюанси на работа с контролно-пропускателни пунктове.
В SA: MP има малък бъг с диаметри контролно-пропускателни пунктове. Ако плейърът е настроен контролно-пропускателен пункт и той веднага постави нов контролно-пропускателен пункт, размерът на новия етикет ще съответства на старите, така че ние се поставят етикети, преди инсталация, старата скрие.
За разлика от лентово устройство, стандартни пунктове SA: MP, не могат да бъдат идентифицирани чрез идентификационен номер. С цел да се определи дали един играч е в необходимите контролно-пропускателни пунктове, предлагам ви да използвате плейъра провери координатите.
На контролно-пропускателни пунктове зададете Z координата не винаги е вярно, така че може да има грешки в монтирането на контролно-пропускателни пунктове в различни samopisnyh интериори.
И все пак би било добре да се добави:
Това в интериора с 0, добавете пунктове няма да работят, защото те нямат Z координати.
"Силата на кръвта, nyash-myash, кръв, власт, Крим е наше!" - (в) Наталия Poklonskaya.
Критикът трябва да са готови и способни по всяко време и в кратък срок, за да заеме мястото на тях разкритикува и да извършват работата си ефективно и компетентно. В противен случай, критиката се превръща в един нагъл, самостоятелна сила и се превръща в пречка за постигане на напредък. (С) AX