а не поможешь делать проверку на то что бы только игрок с определённым ником мог открыть ворота? Заранее спасибо.
Для этого необходимо добавить проверку имени игрока, после введения команды открывающей ворота:
Code
#include <a_samp>
#pragma tabsize 0 #define COLOR_YELLOW 0xFFFF00AA #define FILTERSCRIPT forward lockgate(); //--------------------------------------------условие и проверка------------------------------------- forward IsNearGates(playerid); forward Check(); //-------------------------------------------------------------------------------------------------------------------- #if defined FILTERSCRIPT new gate; //============================================Добавление новой функции============================ stock IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius) //By Sacky { if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) { return 1; } return 0; } stock GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z) //By Sacky { new Float:x1,Float:y1,Float:z1; new Float:tmpdis; GetPlayerPos(playerid,x1,y1,z1); tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2)); return floatround(tmpdis); } //=========================================================================================================== public OnFilterScriptInit() { gate = CreateObject(969,999.401,-645.460,120.628,-0.859,1.719,24.924) ;//сюда вставляете координаты ворот в закрытом виде из Advance Convertera SetTimer("Check",100,1);//через какое время(100мс) проверка условия print("\n--------------------------------------"); print(" Gate by Pcix"); print("--------------------------------------\n"); return 1; }
public OnFilterScriptExit() { return 1; } #endif
//-------------------------------------проверка находится ли игрок рядом с воротами------------------- public IsNearGates(playerid) { if(IsPlayerConnected(playerid)) { if(IsPlayerInSphere(playerid,999.401,-645.460,120.628, 20))//координаты центра сферы , 20 - радиус {return 1;} } return 0; } //-------------------------------------------------------------------------------------------------------------------------------------- //--------------если проверка дала положительный результат то высвечивается надпись--------------------------- public Check() { new string[256]; for (new i=0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { if(IsNearGates(i)) { format(string, sizeof(string), " ~w~BBEѓ…TE ~g~/vorota ~n~~w~ЌTOЂ‘ OTKP‘T’ BOPOTA");//чтобы надпись выводилась на русском ее необходимо сначала конвертировать с помощью PAWNO GameText converter качать тут: http://www.samp-rus.com/load/7-1-0-153 GameTextForPlayer(i, string, 5000, 3);//5000 - время которое надпись будет на экране(мс), 3 - тип текста(подробнее о типах текста вы можете узнать в теме Стили текста: http://www.samp-rus.com/forum/42-4320-1) } }} return 1; } //------------------------------------------------------------------------------------------------------------- public OnPlayerCommandText(playerid, cmdtext[]) { if (IsPlayerInSphere(playerid,999.401,-645.460,120.628,20))//благодаря этому условию ворота открываются только когда игрок находиться рядом, 999.401,-645.460,120.628 - координаты центра сферы, 20 - радиус сферы { if (strcmp(cmdtext, "/vorota", true)==0)// вместо vorota можете написать любую команду, которая будет открывать ворота { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); if(strcmp("Опасный_Вася",name,false)==0) // Вместо Опасный_Вася напиши необходмый ник игрока { MoveObject(gate,999.466,-645.369,124.934, 3.5);//сюда вставляете координаты ворот в открытом виде (уже без id), 3.5 -скорость движения ворот SetTimer("lockgate", 7000, 0);//7000 - время через которое ворота автоматически закроются в мс SendClientMessage(playerid, COLOR_YELLOW,"Ворота закроются в течении 7сек, Поторопитесь!");//надпись которую получит игрок открывшии ворота return 1; } else{SendClientMessage(playerid, COLOR_YELLOW,"Вася ты вовсе не Опасный!");} return 1; } return 1; } return 0; }
public lockgate() { MoveObject (gate,999.401,-645.460,120.628, 3.0);//сюда снова координаты закрытых ворот, 3,0 скорость движения ворот return 1; }
Кто подскажет почему этот конвертер http://www.convertffs.com/ конвертирует обЪекты с Map editor 0.3-D version в том положении в котором они изночально ? а не те которое я ставил.
Кто подскажет почему этот конвертер http://www.convertffs.com/ конвертирует обЪекты с Map editor 0.3-D version в том положении в котором они изночально ? а не те которое я ставил.
А ты их сохранил? зайди в MTA:SA выбери MAP EDITOR Нажми "new" создай все объекты(поверни подвинь), вообщем как тебе надо Далее жми "Save as" и вводи своё название(например zabor) Далее идём туда где установленна МТА например D://Games\MTA:SA\server\mods\deathmatch\resources\zabor(папка) В папке видим 2 файла, нам нужен файл с расширением MAP, т.е. zabor.map, открываем через блокнот, Выделяем всё, копируем, идём на сайт [http://www.convertffs.com/] в белое окошко вставляем всё что скопировали и жмем CONVERT, далее у нас например получилось
/* Objects converted: 29 Vehicles converted: 0 Vehicle models found: 0 ---------------------- In the time this conversion took to finish 4.08 micro-fortnights have passed! */
скачал новый МТА (старый крэши писал). И удивился - там же ничего нет!!! 3 строчки новостей,а всё остальное - чёрный экран... Начал везде тыкать,но открывался только поиск серверов.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Ибо таковые лжеапостолы, лукавые делатели, принимают вид Апостолов Христовых. И неудивительно: потому что сам сатана принимает вид Ангела света, а потому не великое дело, если и служители его принимают вид служителей правды; но конец их будет по делам их. (2Кор 11:13-15).
Подскажите пожалуйста айди этой модельки. Нужно ее удалить, перелопатил весь код так и не нашел ее. Или может есть возможность найти ее в коде по координатам? если да, то как?