Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'мануал'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Техническая поддержка
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Модификации
    • Поиск
    • Архив Вопросов/Проблем/Ошибок
    • Файловый архив
    • Другое
  • SAMP/CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Другое
    • Флейм

Поиск результатов в...

Поиск результатов, которые содержат...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Найдено: 385 результатов

  1. Всем привет,а точнее доброй ночи! Сегодня мне в соц.сеть написал пользователь с данного портала и попросил помочь сделать ему ворота! Но ворота нужны ему были что бы на кнопку Y и не сидя в машине! Посмотрел я данный портал и не нашел этого решения,есть решение только в машине,а пешком нет! И так думаю начнем: Ко всем new new GateCop; new GateMove = 0; В public OnPlayerKeyStateChange добавим(для тех кто в авто) if(newkeys == 65536 && !IsPlayerInAnyVehicle(playerid) || newkeys == 2 && IsPlayerInAnyVehicle(playerid)) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот { if(GateMove == 0) { MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых GateMove = 1; } else if(GateMove == 1) { MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых GateMove = 0; } } } В public OnGameModeInit добавим: GateCop = CreateObject(980, 2579.85, -2435.39, 23.57, 0.00, 0.00, 90.00);//закрытые Ну и: В public OnPlayerKeyStateChange добавим(для тех кто в пешком "Y") if(newkeys & 65536 || newkeys & 2) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//ID фракции пишем свой if(IsPlayerInRangeOfPoint( playerid, 15.0, 2579.8472, -2435.3928, 23.5669))//координаты закрытых ворот { if(GateMove == 0) { MoveObject(GateCop, 2579.8472, -2435.3928, 17.9227, 2.0);//координаты открытых GateMove = 1; } else if(GateMove == 1) { MoveObject(GateCop, 2579.8472, -2435.3928, 23.5669, 2.0);//координаты закрытых GateMove = 0; } } } Ну вот и все! Спасибо за внимание! Автор: Carl
  2. TD_sliv.pwn Автор: MOPTTEX a.k.a Alonso Автор Идеи: ShiGanKa [spoiler=Скрин]
  3. Делал 7 минут. Автор: MOPTTEX a.k.a Alonso Несколько раз удалял, и делал заново. Фуф. Это не система, подстроить под Ваш мод могут в столе заказов, или пишите мне в лс, я за 15 рублей сделаю Вам это. [spoiler=Скрин] TD_rega.pwn
  4. SCRIPTMAN

    /ticket(выдать штраф)

    Привет всем. Сейчас научу вас писать команду /ticket - выдать штраф, команда простая, но возможно кто-то не умеет её писать. Писать я буду на DC_CMD. 1. Для начала создаем команду и пихаем туда проверка, я буду брать со своего мода: CMD:ticket(playerid, params[]) { if(Player[playerid][pMember] != 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены использовать данную команду!"); if(sscanf(params, "iis[128]", params[0], params[1], params[2])) return SCM(playerid, COLOR_WHITE, "Введите: /ticket [id] [сумма] [причина"); if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не найден!"); if(login_check[params[0]] == false) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!"); if(params[0] == playerid) return SCM(playerid, COLOR_GREY, "Вы указали свой ID!"); if(GetDistanceBetweenPlayers(playerid, params[0]) > 10.0) return SCM(playerid, COLOR_GREY, "Игрок далеко от вас!");//Проверка на дистанцию if(params[1] < 0 || params[1] > 50000) return SCM(playerid, COLOR_GREY, "Не менее 1-го и не больее 50000-ти тысяч рублей.");//проверка на деньги Проверки я так думаю объяснять не нужно, они и так понятны по тексту. 2. Делаем текст с помощью static const: (с данной функцией можно ознакомиться в данной теме) static const fmt_str[] = "\ Сотрудник полиции %s выписал вам штраф\ \nРазмером в %d рублей\n\ \nПричина: %s\n\ \nОплатить штраф?\ "; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+5-2+133]; format(string, sizeof(string), fmt_str , Player[playerid][pName], params[1] ); SPD(params[0], id диалога, DSM, "Штраф", string, "Да", "Нет"); Почему у меня несколько строк? - мне так удобнее и понятнее, думаю вам тоже. Дальше нам нужно работать с диалогами, но у них не прокатит params, для этого я создам PVar'ы, так как их не нужно удалять при выходе из игры игрока, как-то так короче В общем, создаем, я назову их TicketPlayer - человек, который выписывает штраф и TicketPrice - сумма штрафа. 3. Создаем PVar'ы: SetPVarInt(params[0], "TicketPlayer", playerid); SetPVarInt(params[0], "TicketPrice", params[1]); Не забываем завершать действие, чтобы не шло дальше, для этого просто добавляем в конец команды "return true;" 4. Из этого всего мы получаем такую вот команду: CMD:ticket(playerid, params[]) { if(Player[playerid][pMember] != 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены использовать данную команду!"); if(sscanf(params, "iis[128]", params[0], params[1], params[2])) return SCM(playerid, COLOR_WHITE, "Введите: /ticket [id] [сумма] [причина"); if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не найден!"); if(login_check[params[0]] == false) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!"); if(params[0] == playerid) return SCM(playerid, COLOR_GREY, "Вы указали свой ID!"); if(GetDistanceBetweenPlayers(playerid, params[0]) > 10.0) return SCM(playerid, COLOR_GREY, "Игрок далеко от вас!"); if(params[1] < 0 || params[1] > 50000) return SCM(playerid, COLOR_GREY, "Не менее 1-го и не больее 50000-ти тысяч рублей."); static const fmt_str[] = "\ Сотрудник полиции %s выписал вам штраф\ \nРазмером в %d рублей\n\ \nПричина: %s\n\ \nОплатить штраф?\ "; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+5-2+133]; format(string, sizeof(string), fmt_str , GN(playerid), params[1] ); SPD(params[0], id диалога, DSM, "Штраф", string, "Да", "Нет"); SetPVarInt(params[0], "TicketPlayer", playerid); SetPVarInt(params[0], "TicketPrice", params[1]); return true; } 5. Переходим к работе с диалогом, для этого создаем диалог со свободным ID, дальше добавляем PVar'ы, точнее присваиваем к переменным: case id: //у вас возможно будет if(dialogid == id диалога) { new playerd = GetPVarInt(playerid, "TicketPlayer"); new price = GetPVarInt(playerid, "TicketPrice"); Дальше делаем действие на правую кнопку, то есть, если он нажмет "Да". 6. Для начала делаем проверку, есть ли данная сумма для оплаты у игрока: if(response) { if(Player[playerid][pMoney] < price) { SCM(playerd, COLOR_GREY, "У игрока недостаточно денег!"); SCM(playerid, COLOR_GREY, "У вас недостаточно денег!"); return true; } 7. Теперь, если у игрока есть деньги, отнимем у него данную сумму, а нам отдадим: Player[playerd][pMoney] += price; Player[playerid][pMoney] -= price; Player[playerid][pTicket_op] += 1;//можете её пока удалить, это у игрока появляется уже +1 оплаченный штраф, позже сделаю урок 8. Теперь сам текст: static const fmt_str[] = "%s оплатил штраф в размере %d рублей."; new string[sizeof(fmt_str)+2+MAX_PLAYER_NAME-2+5]; format(string, sizeof(string), fmt_str, GN(playerid), price); SCM(playerd, COLOR_GREEN, string); static const fmt_str_2[] = "Вы оплатили штраф в размере %d рублей."; new string_2[sizeof(fmt_str_2)-2+5]; format(string_2, sizeof(string_2), fmt_str_2, price); SCM(playerid, COLOR_GREEN, string_2); } 9. Теперь делаем действие на левую кнопку мыши, если игрок нажал "Нет": else { SCM(playerd, COLOR_RED, "Игрок отказался оплачивать штраф."); SCM(playerid, COLOR_RED, "Вы отказались оплачивать штраф."); Player[playerid][pTicket_no] += 1;//можете пока удалить, это +1 неоплаченный штраф DeletePVar(playerid, "TicketPlayer"), DeletePVar(playerid, "TicketPrice"); } То есть, вывели текст, прибавили неоплаченный штраф и удалили PVar'ы 10. В итоге у нас получается так: case id: { new playerd = GetPVarInt(playerid, "TicketPlayer"); new price = GetPVarInt(playerid, "TicketPrice"); if(response) { if(Player[playerid][pMoney] < price) { SCM(playerd, COLOR_GREY, "У игрока недостаточно денег!"); SCM(playerid, COLOR_GREY, "У вас недостаточно денег!"); return true; } Player[playerd][pMoney] += price; Player[playerid][pMoney] -= price; Player[playerid][pTicket_op] += 1; static const fmt_str[] = "%s оплатил штраф в размере %d рублей."; new string[sizeof(fmt_str)+2+MAX_PLAYER_NAME-2+5]; format(string, sizeof(string), fmt_str, GN(playerid), price); SCM(playerd, COLOR_GREEN, string); static const fmt_str_2[] = "Вы оплатили штраф в размере %d рублей."; new string_2[sizeof(fmt_str_2)-2+5]; format(string_2, sizeof(string_2), fmt_str_2, price); SCM(playerid, COLOR_GREEN, string_2); } else { SCM(playerd, COLOR_RED, "Игрок отказался оплачивать штраф."); SCM(playerid, COLOR_RED, "Вы отказались оплачивать штраф."); Player[playerid][pTicket_no] += 1; DeletePVar(playerid, "TicketPlayer"), DeletePVar(playerid, "TicketPrice"); } } Ну вот и все, в следующем уроке сделаем штрафы оплаченные и неоплаченные. Автор: SCRIPTMAN
  5. Vladimir_Kulkov

    Спидометр(простой)

    Вот простенький спидометр. Спидометр: - Скорость - Марка - бензин - Шкала скорости Спидометр находится в нижнем правом углу
  6. Vladimir_Kulkov

    Захват Ганг Зон

    Гангзону нельзя захватить если игрок(и) этой банды не онлайн Чтобы захватить гангзону введите /capture ждете 2 минуты (на подготовку) и стреляетесь, если вы всех убили и их на ГангЗоне нету то территория будет принадлежать вам. Ну так вот, начнем: Ко всем new: new Float:STANDARTGangZone[49][4] = { {0.0, 0.0,0.0, 0.0}, {2577.861572, -1056.913940, 2787.590087, -898.770690}, {2368.133056, -1056.913940, 2577.861572, -898.770690}, {2158.404541, -1056.913940, 2368.133056, -898.770690}, {1948.676025, -1056.913940, 2158.404541, -898.770690}, {1738.947509, -1056.913940, 1948.676025, -898.770690}, {2787.590087, -1056.913940, 2997.318603, -898.770690}, {2787.590087, -1215.057128, 2997.318603, -1056.913940}, {2787.590087, -1373.200439, 2997.318603, -1215.057128}, {2787.590087, -1531.343750, 2997.318603, -1373.200439}, {2787.590087, -1689.486938, 2997.318603, -1531.343750}, {2787.590087, -1847.630126, 2997.318603, -1689.486938}, {2787.590087, -2005.773437, 2997.318603, -1847.630126}, {2787.590087, -2163.916503, 2997.318603, -2005.773437}, {2577.861572, -1215.057128, 2787.590087, -1056.913940}, {2577.861572, -1373.200439, 2787.590087, -1215.057128}, {2577.861572, -1531.343750, 2787.590087, -1373.200439}, {2577.861572, -1689.486938, 2787.590087, -1531.343750}, {2577.861572, -1847.630126, 2787.590087, -1689.486938}, {2577.861572, -2005.773437, 2787.590087, -1847.630126}, {2577.861572, -2163.916503, 2787.590087, -2005.773437}, {2368.133056, -1215.057128, 2577.861572, -1056.913940}, {2368.133056, -1373.200439, 2577.861572, -1215.057128}, {2368.133056, -1531.343750, 2577.861572, -1373.200439}, {2368.133056, -1689.486938, 2577.861572, -1531.343750}, {2368.133056, -1847.630126, 2577.861572, -1689.486938}, {2368.133056, -2005.773437, 2577.861572, -1847.630126}, {2368.133056, -2163.916503, 2577.861572, -2005.773437}, {2158.404541, -1215.057128, 2368.133056, -1056.913940}, {2158.404541, -1373.200439, 2368.133056, -1215.057128}, {2158.404541, -1531.343750, 2368.133056, -1373.200439}, {2158.404541, -1689.486938, 2368.133056, -1531.343750}, {2158.404541, -1847.630126, 2368.133056, -1689.486938}, {2158.404541, -2005.773437, 2368.133056, -1847.630126}, {2158.404541, -2163.916503, 2368.133056, -2005.773437}, {1948.676025, -1215.057128, 2158.404541, -1056.913940}, {1948.676025, -1373.200439, 2158.404541, -1215.057128}, {1948.676025, -1531.343750, 2158.404541, -1373.200439}, {1948.676025, -1689.486938, 2158.404541, -1531.343750}, {1948.676025, -1847.630126, 2158.404541, -1689.486938}, {1948.676025, -2005.773437, 2158.404541, -1847.630126}, {1948.676025, -2163.916503, 2158.404541, -2005.773437}, {1738.947509, -1215.057128, 1948.676025, -1056.913940}, {1738.947509, -1373.200439, 1948.676025, -1215.057128}, {1738.947509, -1531.343750, 1948.676025, -1373.200439}, {1738.947509, -1689.486938, 1948.676025, -1531.343750}, {1738.947509, -1847.630126, 1948.676025, -1689.486938}, {1738.947509, -2005.773437, 1948.676025, -1847.630126}, {1738.947509, -2163.916503, 1948.676025, -2005.773437} }; new OnZONE[49][20]; new ZoneOnBattle[49]; new ZoneTimer[49]; new allowedfactions[] = { 13,14,16,19,15}; new GZSafeTime[49]; enum GzoneInfo { gID, Float:gCoords[4], gFrakVlad, gNapad, } new GZInfo[49][GzoneInfo]; new FrakCD[20]; Ко всем forward'ам: forward LoadGZ(); forward SaveGZ(); forward GzCheck(); forward PlayerToKvadrat( playerid, Float:min_x, Float:min_y, Float:max_x, Float:max_y ); Ко всем stock: stock GetGangZoneColor(gangzonex) { new zx; switch(GZInfo[gangzonex][gFrakVlad]) { case 13: zx =0x00FF1465; case 14: zx = 0x00EBFF65; case 16: zx =0xFF00EB65; case 19: zx =0x0087FF65; case 15: zx =0xFFC80065; default: zx = 0xFFBE0065; } return zx; } stock GetGZColorF(fnumber) { new zx; switch(fnumber) { case 13: zx =0x00FF1465; case 14: zx = 0x00EBFF65; case 16: zx =0xFF00EB65; case 19: zx =0x0087FF65; case 15: zx =0xFFC80065; } return zx; } stock IsInAllowed(playerid) { for(new i =0;i<sizeof(allowedfactions);i++) { if(PlayerInfo[playerid][pMember] == allowedfactions[i]||PlayerInfo[playerid][pLeader] == allowedfactions[i]) return 1; } return 0; } stock IsInAllowedF(fnumbers) { for(new i =0;i<sizeof(allowedfactions);i++) { if(fnumbers == allowedfactions[i]) return 1; } return 0; } stock GetGangName(fnumbwer) { new string[256]; switch(fnumbwer) { case 13: format(string,sizeof(string),"Grove Street Gang"); case 14: format(string,sizeof(string),"Los Aztecas Gang"); case 16: format(string,sizeof(string),"The Ballas Gang"); case 19: format(string,sizeof(string),"SF Rifa Gang"); case 15: format(string,sizeof(string),"Los Santos Vagos Gang"); } return string; } stock IsPlayerInBandOnline(bandid) { for(new i=0; i < GetMaxPlayers(); i++) { if(PlayerInfo[i][pMember] == bandid || PlayerInfo[i][pLeader] == bandid) return 1; } return 0; } stock Name(playerid) { new pl[24]; GetPlayerName(playerid,pl,24); return pl; } Ко всем public: public LoadGZ() { new string[256]; new File = iniOpen("GangZonesTrigga.ini"); new l[256]; new asd[5][10]; for(new i =0;i<sizeof(GZInfo);i++) { format(string,sizeof(string),"Zone%d",i); new x = iniGet(File,string,l); if(x < 0) { GZInfo[i][gCoords][0] = STANDARTGangZone[i][0]; GZInfo[i][gCoords][1] = STANDARTGangZone[i][1]; GZInfo[i][gCoords][2] =STANDARTGangZone[i][2]; GZInfo[i][gCoords][3] =STANDARTGangZone[i][3]; } else { split(l,asd,'|'); GZInfo[i][gCoords][0] = floatstr(asd[0]); GZInfo[i][gCoords][1] = floatstr(asd[1]); GZInfo[i][gCoords][2] = floatstr(asd[2]); GZInfo[i][gCoords][3] = floatstr(asd[3]); } GZInfo[i][gFrakVlad] = strval(asd[4]); if(GZInfo[i][gFrakVlad] == 0) GZInfo[i][gFrakVlad] = allowedfactions[random(sizeof(allowedfactions))]; GZInfo[i][gID] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][ gCoords][1],GZInfo[i][gCoords][2],GZInfo[i] [gCoords][3]); ZoneOnBattle[i] =0; GZSafeTime[i] =0; } iniClose(File); print("Система гангзон успешно загружена!"); } public SaveGZ() { new string[256]; new File = iniOpen("GangZonesTrigga.ini"); new l[10]; for(new i =0;i<sizeof(GZInfo);i++) { format(l,sizeof(l),"Zone%d",i); format(string,sizeof(string),"%f|%f|%f|%f|%d",GZInfo[i][gCoords] [0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3],GZInfo[i][gFrakVlad] ); iniSet(File,l,string); } iniClose(File); } public GzCheck() { new string[256]; for(new i =0;i<sizeof(GZInfo);i++) { if(ZoneOnBattle[i] == 1 && GZSafeTime[i] == 0) { ZoneTimer[i] -=10; if(ZoneTimer[i] <=0) { SendClientMessageToAll(-1,"Наблюдатель: Время на захват зоны вышел. Ничья."); ZoneOnBattle[i] =0; GangZoneStopFlashForAll(GZInfo[i][gID]); } for(new x =0;x<MAX_PLAYERS;x++) { if(PlayerToKvadrat(x,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3])&&IsInAllowed(x)) { new faction; if(PlayerInfo[x][pLeader] !=0) {faction = PlayerInfo[x][pLeader];} else { faction = PlayerInfo[x][pMember];} OnZONE[i][faction] ++; } } new asd; for(new x =0;x<20;x++) { if(OnZONE[i][x] > 0 && IsInAllowedF(x)) asd ++; } if(asd == 1) { for(new x =0;x<20;x++) { if(OnZONE[i][x] > 0) { new zx,zl; zx = x; zl = i; if(GZInfo[i][gFrakVlad] == x) {format(string,sizeof(string),"Наблюдатель: Банда %s отстояла свою зону.",GetGangName(zx)); } else {format(string,sizeof(string),"Наблюдатель: Банда %s выйгрывает зону.",GetGangName(zx)); } for(new ads = 13;ads <= 19;ads++) { SendFamilyMessage(ads,GetGangZoneColor(zx),string); } ZoneOnBattle[zl] =0; GZInfo[zl][gNapad] = 0; GZInfo[zl][gFrakVlad] = zx; GangZoneStopFlashForAll(GZInfo[zl][gID]); GangZoneHideForAll(GZInfo[zl][gID]); GangZoneShowForAll(GZInfo[zl][gID],GetGangZoneColor(zl)); break; } } } } } for(new i =0;i<49;i++) { for(new z = 0;z<20;z++) { OnZONE[i][z] =0; } } } public PlayerToKvadrat(playerid,Float:min_x,Float:min_y,Float:max_x,Float:max_y) { new Float:xxp,Float:yyp,Float:zzp; GetPlayerPos(playerid, xxp, yyp, zzp); if((xxp <= max_x && xxp >= min_x) && (yyp <= max_y && yyp >= min_y)) return 1; return 0; } В public OnPlayerConnect(playerid): for(new i =0;i<49;i++) { GangZoneShowForPlayer(playerid,GZInfo[i][gID],GetGangZoneColor(i)); } В public OnGameModeInit: SetTimer("GzCheck",10000,1); SetTimer("SaveGZ",100000,1); LoadGZ(); В public SaveAccounts(): new faction=0; if(!strcmp(cmd,"/changegzcolor",true)) { tmp = strtok(cmdtext,idx); new l = strval(tmp); if(!IsInAllowedF(l)) return SendClientMessage(playerid,COLOR_LIGHTRED,"Неправильный ид банды!"); if(PlayerInfo[playerid][pAdmin] >= 6) { for(new i = 0;i<49;i++) { if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3])) { GZInfo[i][gFrakVlad] = l; GangZoneStopFlashForAll(GZInfo[i][gID]); GangZoneHideForAll(GZInfo[i][gID]); GangZoneShowForAll(GZInfo[i][gID],GetGangZoneColor(i)); return 1; } } } } if(!strcmp(cmd,"/capture",true)) { if(FrakCD[faction] == 0) { if(!IsInAllowed(playerid)) { return SendClientMessage(playerid,COLOR_LIGHTRED,"Ваша банда не может учавствовать в захвате зон или вы не на 1 зоне"); } for(new i = 0;i<49;i++) { if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][ 2],GZInfo[i][gCoords][3]) && GZInfo[i][gFrakVlad] != faction && ZoneOnBattle[i] == 0) { if(!IsPlayerInBandOnline(GZInfo[i][gFrakVlad])) return SendClientMessage(playerid,COLOR_LIGHTRED,"Зону банды которую вы хотите атаковать нет в онлайне!"); if(PlayerInfo[playerid][pRank] < 5) return SendClientMessage(playerid,COLOR_LIGHTRED,"Иницировать захват можно только с 5 ранга и выше!"); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,"Ваша Зона под атакой. У вас 2 минуты чтобы подготовится к защите зоны."); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,"Если через 2 минуты на зоне никого не будет то зона автоматически перейдет к врагу"); format(string,sizeof(string),"%s начал борьбу за зону против %s банды. У вас 2 минуты чтобы подготовится к атаке",Name(playerid),GetGangName(GZInfo[i][gFrakVlad])); SendFamilyMessage(faction,COLOR_LIGHTRED,string); GangZoneFlashForAll(GZInfo[i][gID],GetGZColorF(faction)); GZSafeTime[i] = 120; FrakCD[faction] = 3000; GZInfo[i][gNapad] = faction; ZoneTimer[i] = 720; ZoneOnBattle[i] = 1; break; } } } else { return SendClientMessage(playerid,COLOR_LIGHTRED,"Ваша банда еще не окрепла с момента последнего захвата. Ждите!"); } } В public SetPlayerUnjail(): for(new i =0;i<49;i++) { if(GZSafeTime[i]>0) { GZSafeTime[i] --; if(GZSafeTime[i] == 60 || GZSafeTime[i] == 120) { format(string,sizeof(string),"У вас осталось %d секунд на подготовку",GZSafeTime[i]); SendFamilyMessage(GZInfo[i][gNapad],COLOR_LIGHTRED,string); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,string); } if(GZSafeTime[i]==0) { format(string,sizeof(string),"Время на подготовку вышло. Если у вас нет ни одного солдата на поле боя то зона автоматически переходит к противнику"); SendFamilyMessage(GZInfo[i][gNapad],COLOR_LIGHTRED,string); SendFamilyMessage(GZInfo[i][gFrakVlad],COLOR_LIGHTRED,string); } } } for(new i =0;i<sizeof(FrakCD);i++) { if(FrakCD[i] >0) { FrakCD[i] --; if(FrakCD[i] == 0) SendFamilyMessage(i,COLOR_LIGHTRED,"Ваша банда снова может учавствовать в захвате зон"); } } Иды фракций заменяйте на свои. Без инклуда mxINI ничего не получится. ID фракций меняйте на свои. Автор: Trigger
  7. Vladimir_Kulkov

    Еда для бомжей

    Этот урок полный без багов. Так начнём... Вставляем ко всем new new eatrp; Ко всем define #define COLOR_PINK8 0xFF69B4AA #define COLOR_GRAD1 0xBFC0C2FF в public OnPlayerPickUpPickup(playerid, pickupid) //Жизни else if(pickupid == eatrp) { if(PlayerHealth[playerid] == 100) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не голодны!"); if(PlayerInfo[playerid][pLevel] > 3) return SendClientMessage(playerid, COLOR_GRAD1, "Можно использовать до 3 уровня!"); SetPlayerHealthAC(playerid, 100); SendClientMessage(playerid, COLOR_PINK8, "{FF69B4}*Поел"); } В public OnGameModeInit() Ко всем пикапам //жизни eatrp = CreatePickup(2821, 1,1752.3273,-1889.4989,13.5574);//кардинаты меняем на свои и всё Вот и всё готово Для новичков будет полезно Автор:Неизвестно
  8. Vladimir_Kulkov

    Система банкоматов

    Приветствую пользователи форума cr-mp.ru, хотелось бы выложить сис-му создания банкоматов. Предупреждение! - В данной системе, для полной работоспособности банкомата, вам необходимо вставить код своих переменных, тоесть заменить pInfo[playerid][pMoney] и pInfo[playerid][pBank], на те переменные, в которые вы выгружаете значения из таблиц/файлов. Ко всем Include #include <a_samp> #include <streamer> Ко всем Define #define MAX_BANKOMATS 2 // максимальное кол-во банкоматов #define BANKOMAT_CASH 15 // изымаемый процент от пользования банкоматом #define d_bankomat 9 // свободный ID диалога Ко всем New new ATMZone[MAX_BANKOMATS], cBankomats ; В public OnPlayerEnterDynamicArea(playerid, areaid) if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",1); //Если игрок попал в зону банкомата В public OnPlayerLeaveDynamicArea(playerid, areaid) if(ATMZone[0] <= areaid <= ATMZone[cBankomats-1]) SetPVarInt(playerid,"PlayerUseBankomat",0); //Если игрок покинул зону банкомата В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) if(PRESSED(KEY_WALK)) { // Действия при нажатии левой клавиши 'Alt' if(GetPVarInt(playerid,"PlayerUseBankomat") != 0) { //Если игрок находится в зоне банкомата showPlayerDialog(playerid, d_bankomat, 2,"Банкомат","Проверить баланс\nСнять деньги со счета\nПоложить деньги на счет","Дальше","Закрыть"); //Вызываем диалог банкомата } } В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if(dialogid == d_bankomat) { if(!response) return 1; switch(listitem) { case 0: { format(string,sizeof(string),"| Информация о балансе на счету:\n\nСостояние банковского счета - $%d",pInfo[playerid][pMoney]); // pInfo[playerid][pMoney] заменяете на кол-во денег игрока из своего мода showPlayerDialog(playerid, 9999, 0, " ", string, "Закрыть", ""); } case 1: showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); case 2: showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); } } if(dialogid == d_bankomat + 1) { if(!response) return 1; if(!strlen(inputtext)) return showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); if(strval(inputtext) < 100 || strval(inputtext) > 100000) return showPlayerDialog(playerid, d_bankomat + 1, 1, "Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");//Если игрок ввел сумму больше 100000 или менее 100. new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100; pInfo[playerid][pBank] -= strval(inputtext)-BankCash;//Вычитаем процент и отнимаем деньги с банк.счета pInfo[playerid][pMoney] += strval(inputtext)-BankCash;//Вычитаем процент и получаем деньги на руки ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1); } if(dialogid == d_bankomat + 2) { if(!response) return 1; if(!strlen(inputtext)) return showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); if(strval(inputtext) < 100 || strval(inputtext) > 100000) return showPlayerDialog(playerid, d_bankomat + 2, 1, "Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); //Если игрок ввел сумму больше 100000 или менее 100. new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100; //Вычисляем % от пользования банкоматом pInfo[playerid][pBank] += strval(inputtext)-BankCash; //Вычитаем процент и получаем деньги в банк pInfo[playerid][pMoney] -= strval(inputtext)-BankCash; //Вычитаем процент и отнимаем деньги с рук ApplyAnimation(playerid, "PED", "ATM",4.0, 0, 1, 1, 0, 0, 1); //Приминяем анимацию пользования банкоматом } В public OnGameModeInit() CreateBankomat(1740.29,-1771.58,13.37,0.00,0.00,0.00); //Создаем банкомат CreateBankomat(1740.29,-1773.58,13.37,0.00,0.00,0.00); //Аналогично Функция создания банкомата, вставляем в конец мода. stock CreateBankomat(Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz) { CreateDynamicObject(2754,x,y,z,rx,ry,rz); //Создаем сам банкомат CreateDynamic3DTextLabel("Банкомат\n\nALT",0xFFFFFFFF, x,y,z,3.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0); //Создаем 3д текст к банкомату ATMZone[cBankomats] = CreateDynamicSphere(x,y,z,2.0); //Создаем сферу действия банкомата cBankomats ++; //Прибавляем 1 созданный банкомат к общему кол-ву return 1; } Возникли вопросы? Пишите в данную тему. Автор:Неизвестно
  9. Vladimir_Kulkov

    [CMD] /veh, /delveh

    Здравствуйте, уважаемые пользователи cr-mp.ru Предоставляю Вам реализацию команд /veh, /delveh на Pawn.CMD (3.1.3) + sscanf2 (2.8.2):
  10. Vladimir_Kulkov

    Команда /makeadmin на dc_cmd

    Всем привет не видел на данном форуме такую команду как /makeadmin и решил её выложить. Итак начнем! Сначала сделаем #define #define SCM SendClientMessage К вашим командам. CMD:makeadmin(playerid, params[]) { if(Player[playerid][pAdmin] < 8) return SCM(playerid, 0xFF0000AA, "Вы не уполномочены использовать данную команду"); if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xFF0000AA, "Введите: /makeadmin [0-7]"); if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000AA, "Данный игрок не в сети!"); if(params[1] < 0 || params[1] > 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]"); Player[params[0]][pAdmin] = params[1]; static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d"; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1]; format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]); SCM(params[0], 0xFFFF00FF, string); return true; } А теперь давайте разберем код. new string[128]; // Отвечает за размер строки (Не менять больше! т.к нагружать сервер будет) if(Player[playerid][pAdmin] < 8) // Отвечает за проверку уровня админа (Player - Это переменная где хранятся данные об игроке например у меня: Player) pAdmin - Это массив отвечающий за админа меняйте на свой, (( < 8 - Если уровень админа меньше 8, то возникает ошибка )) if(sscanf(params, "ii", params[0], params[1])) // params, "ii" - Отвечает за текст и айди игрока, params[0] - ид игрока, params[1] - уровень админа if(!IsPlayerConnected(params[0])) // Проверка на в сети ли игрок, params[0] - ид игрока который был введен if(params[1] < 0 || params[1] > 7) // params[1] < 0 если введеный уровень меньше 0, params[1] > 7 если введеный уровень больше 7, то возникнет ошибка, (params[1] - отвечает за текст) Player[params[0]][pAdmin] = params[1]; // Присвоение игроку уровень админа, Player[params[0] - ИД игрока, = params[1] - Уровень который хотят дать format(string, sizeof(string), "Админ %s изменил ваш уровень админа на: %d", Player[playerid][pName], params[1]); // Player[playerid][pName] - Ваш массив с именем (Ставите свой), params[1] - Сколько игроку поставили уровень админа SendClientMessage(params[0], 0xFFFFFFAA, string); return true; // Действие повторяется Автор : неизвестно
  11. Представляю вашему вниманию оригинальную систему регистрации. Подобного вида система используется на RP-Gameworld. Уверен, данная система внесет каплю разнообразия на ваш сервер. Демонстрационное видео
  12. Всем привет! По скольку активность на форуме, мягко говоря упала, я решил её немного поднять. Сегодня я расскажу вам, как написать систему администрации, я делал такой урок, только на mxINI, но до меня давно уже дошло, что это прошлый век. Давайте начнём короче. 1. В pInfo создадим массив: pAdmin 2. Где у вас завершается регистрация, то есть указываются параметры, типа деньги, уровень и т.д., вставьте: Player[playerid][pAdmin] = 0; Мне привычней, использовать Player, может у кого-то будет pInfo, PlayerInfo и т.д., кто не понял для чего это, объясняю - мы ставим параметр pAdmin = 0, то есть, чтобы у него не было админки, кто-то может выдавать админку, но я считаю, что это уже Нубо РП. Так-с, дальше, где у вас идет создание аккаунта, в конец добавьте: `Admin` '%d' И конечно же, массив добавляем: Player[playerid][pAdmin] В паблик с авторизацией: Player[i][pAdmin] = cache_get_field_content_int(0, "Admin"); Вместо "i" у вас может быть "playerid" Дальше в сохранение аккаута: `Admin` = %d,\ И Player[playerid][pAdmin] Скопируйте как у вас идет сохранение денег например и подставляйте. И конечно базу данных, в структуру добавьте: Имя: Admin тип: INT, длина: 1. Вот и всё. На этом конец урока. Вот картинка, если кто-то не понял как добавлять:
  13. Работа заключается в том, что нужно по точкам развести достаточно больше пицца, чтобы заработать большую зарплату. Ко всем define #define PizzaMoney 1000 // Цена за один чекпоинт #define PizzaTime 300 // Сколько игроку дается времени (в секундах) чтобы доставить пиццы #define COLOR_LIGHTBLUE 0x33CCFFAA В глобалку new Float:PizzaCheckpoint[10][3] = { {2199.6738,-1766.1499,21.4903}, {2431.0461,-1706.7495,21.4876}, {2378.8538,-1862.7435,21.4903}, {2374.2595,-1887.1068,21.4903}, {2409.5942,-2143.4617,21.4864}, {2552.6003,-2195.3875,21.5006}, {2752.5759,-2447.5283,21.2174}, {2326.6321,-1804.7623,21.9824}, {2308.0000,-1912.1495,21.3555}, {2256.9080,-2102.9331,21.4971} }; new Pizza[2]; В public OnGameModeInit SetTimer("SecondTimes", 1000, true); Pizza[0] = AddStaticVehicleEx(448,2143.9517,-1811.9202,18.4989,0.9532,3,6,6000); AddStaticVehicleEx(448,2147.4592,-1811.8813,18.4981,1.9254,3,6,6000); AddStaticVehicleEx(448,2150.9919,-1811.8866,18.4972,359.9016,3,6,6000); AddStaticVehicleEx(448,2154.4307,-1811.8749,18.4980,1.2683,3,6,6000); AddStaticVehicleEx(448,2157.9902,-1811.8684,18.4989,1.4477,3,6,6000); AddStaticVehicleEx(448,2161.5176,-1811.8600,18.4980,1.0813,3,6,6000); Pizza[1] = AddStaticVehicleEx(448,2165.0857,-1811.8517,18.4972,359.9437,3,6,6000); В public OnPlayerCommandText if(strcmp("/job", cmdtext, true, 10) == 0) { new carid = GetPlayerVehicleID(playerid); if(GetVehicleModel(carid) == 448 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "Доставьте пиццу по указанным точкам!"); SetPlayerCheckpoint(playerid, PizzaCheckpoint[1][0], PizzaCheckpoint[1][1], PizzaCheckpoint[1][2], 2.0); SetPVarInt(playerid, "GetPlayerSkin", GetPlayerSkin(playerid)); SetPlayerSkin(playerid, 155); SetPVarInt(playerid, "PizzaTime", gettime() + PizzaTime); SetPVarInt(playerid, "PizzaCheck", 1); return 1; } return 1; } В public OnPlayerEnterCheckpoint new carid = GetPlayerVehicleID(playerid); if(GetPVarInt(playerid, "PizzaCheck") == 1 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[2][0], PizzaCheckpoint[2][1], PizzaCheckpoint[2][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 2); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 2 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[3][0], PizzaCheckpoint[3][1], PizzaCheckpoint[3][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 3); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 3 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[4][0], PizzaCheckpoint[4][1], PizzaCheckpoint[4][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 4); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 4 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[5][0], PizzaCheckpoint[5][1], PizzaCheckpoint[5][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 5); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 5 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[6][0], PizzaCheckpoint[6][1], PizzaCheckpoint[6][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 6); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 6 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[7][0], PizzaCheckpoint[7][1], PizzaCheckpoint[7][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 7); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 7 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[8][0], PizzaCheckpoint[8][1], PizzaCheckpoint[8][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 8); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 8 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[9][0], PizzaCheckpoint[9][1], PizzaCheckpoint[9][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 9); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } if(GetPVarInt(playerid, "PizzaCheck") == 9 && GetPVarInt(playerid, "PizzaTime") >= 0 && carid >= Pizza[0] && carid <= Pizza[1]) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, PizzaCheckpoint[1][0], PizzaCheckpoint[1][1], PizzaCheckpoint[1][2], 2.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы доставили пиццу!"); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); SetPVarInt(playerid, "PizzaCheck", 1); SetPVarInt(playerid, "PizzaMoney", GetPVarInt(playerid, "PizzaMoney") + PizzaMoney); return 1; } В public OnPlayerStateChange if(newstate == PLAYER_STATE_DRIVER) { new carid = GetPlayerVehicleID(playerid); if(carid >= Pizza[0] && carid <= Pizza[1]) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Введите /job чтобы начать работу доставщика пиццы."); } И в конец мода forward SecondTimes(playerid); public SecondTimes(playerid) { if(GetPVarInt(playerid, "PizzaCheck") != 0 && GetPVarInt(playerid, "PizzaTime") <= gettime()) { new s[30]; format(s, sizeof(s), "Вы заработали %d рублей.", GetPVarInt(playerid, "PizzaMoney")); SendClientMessage(playerid, -1, s); GivePlayerMoney(playerid, GetPVarInt(playerid, "PizzaMoney")); SetPlayerSkin(playerid, GetPVarInt(playerid, "GetPlayerSkin")); DisablePlayerCheckpoint(playerid); DeletePVar(playerid, "PizzaTime"); DeletePVar(playerid, "PizzaCheck"); DeletePVar(playerid, "PizzaMoney"); DeletePVar(playerid, "GetPlayerSkin"); return 1; } return 1; } Автор: Amfy, скрипт найден в одном из GM
  14. Привет, держи команды, чтобы узнать ид интерьера и виртуального мира, удачи. CMD:int(playerid) { new string[5];//в запас format(string, sizeof(string), "Великий ID интерьера: %d", GetPlayerInterior(playerid)); SCM(playerid, 0xFFFFFFFF, string); return true; } На ещё: CMD:world(playerid) { new string[5];//в запас format(string, sizeof(string), "Великий ID мира, который виртуальный: %d", GetPlayerVirtualWorld(playerid)); SCM(playerid, 0xFFFFFFFF, string); return true; }
  15. MYSTERYMAN

    Архитектура проекта

    Доброго времени суток, в данной статье я хочу поговорить по поводу организации архитектуры проектов. За многолетнюю историю на поприще программирования игровых режимов сложилась тенденция писать всю логику в один файл, что в корне неверно и является дурным тоном и в современном мире является признаком некоторой бездарности программиста. Данная тенденция сложилась ешё в зародыше развития мультиплеера и связи с этим дожила до наших дней, но она является не практичной, так как при увеличении количества кода возрастает и сложность его чтения. Для того чтобы в процессе изменения вашей программы не создавались накладные расходы, следует придерживаться грамотно спроектированной архитектуры вашего проекта, давайте определимся что же такое хорошая архитектура. Хорошая архитектура — это архитектура, делающая процесс разработки и сопровождение программы более простым и эффективным. Программа с хорошей архитектурой легче поддаётся расширению и изменению, а также тестированию. Так как большинство игровых режимов написано одним большим монолитом, то к ним данное определение никак не подходит. И решение этому есть, разбиение программы на ряд независимых программ, называемых модулями, сам процесс разбиения программы называется декомпозицией. Декомпозиция программы — принцип разделения сложных систем и процессов на множество простых отдельных частей, которые согласованно взаимодействуют друг с другом. Идея декомпозиции состоит в разбиении программы на такие части, как: заголовочный файл модуля; файл реализации модуля. В заголовочный файл помещают определение данных используемые файлом реализации, а также прототипы используемых функции. Файл реализации содержит в себе основную логику вашей программы. Также, следует заметить, что если вашей программе разные модули используют единые функции, то такие функции следует выносить в общий модуль. Ваш проект может быть организован подобным образом:
  16. Denis2131

    TextDraw Money

    Всем привет, тут на форуме не видел, но может кому пригодиться.
  17. Pavel_Zaytsev

    Анти-Бот

    #define MAX_IP 3 new connect_ip[32+1]; GetPlayerIp(playerid,connect_ip,32); new num_ip = GetNumberOfPlayersOnThisIP(connect_ip); if(num_ip > MAX_IP) { //Kick(playerid); Ban(playerid); return 1; } P.S: Из мода вырезал.
  18. //Global Textdraws: new Text:tdReg[26], PlayerText:RegTD[MAX_PLAYERS][6]; tdReg[0] = TextDrawCreate(616.231445, 127.499992, "usebox"); TextDrawLetterSize(tdReg[0], 0.000000, 20.488893); TextDrawTextSize(tdReg[0], 486.667663, 0.000000); TextDrawAlignment(tdReg[0], 1); TextDrawColor(tdReg[0], 0); TextDrawUseBox(tdReg[0], true); TextDrawBoxColor(tdReg[0], -2147483393); TextDrawSetShadow(tdReg[0], 0); TextDrawSetOutline(tdReg[0], 0); TextDrawFont(tdReg[0], 0); tdReg[1] = TextDrawCreate(614.888793, 137.833358, "usebox"); TextDrawLetterSize(tdReg[1], 0.000000, 19.083330); TextDrawTextSize(tdReg[1], 488.541778, 0.000000); TextDrawAlignment(tdReg[1], 1); TextDrawColor(tdReg[1], 0); TextDrawUseBox(tdReg[1], true); TextDrawBoxColor(tdReg[1], 303174399); TextDrawSetShadow(tdReg[1], 0); TextDrawSetOutline(tdReg[1], 0); TextDrawFont(tdReg[1], 0); tdReg[2] = TextDrawCreate(550.981201, 126.000007, "АВТОРИЗАЦИЯ"); TextDrawLetterSize(tdReg[2], 0.147335, 0.876666); TextDrawAlignment(tdReg[2], 2); TextDrawColor(tdReg[2], -1); TextDrawSetShadow(tdReg[2], 0); TextDrawSetOutline(tdReg[2], 0); TextDrawBackgroundColor(tdReg[2], 51); TextDrawFont(tdReg[2], 2); TextDrawSetProportional(tdReg[2], 1); tdReg[3] = TextDrawCreate(534.303100, 142.500015, "usebox"); TextDrawLetterSize(tdReg[3], 0.000000, 0.811005); TextDrawTextSize(tdReg[3], 491.821319, 0.000000); TextDrawAlignment(tdReg[3], 1); TextDrawColor(tdReg[3], 0); TextDrawUseBox(tdReg[3], true); TextDrawBoxColor(tdReg[3], -2147483393); TextDrawSetShadow(tdReg[3], 0); TextDrawSetOutline(tdReg[3], 0); TextDrawFont(tdReg[3], 0); tdReg[4] = TextDrawCreate(611.672424, 154.583328, "usebox"); TextDrawLetterSize(tdReg[4], 0.000000, 0.857857); TextDrawTextSize(tdReg[4], 491.821258, 0.000000); TextDrawAlignment(tdReg[4], 1); TextDrawColor(tdReg[4], 0); TextDrawUseBox(tdReg[4], true); TextDrawBoxColor(tdReg[4], -2147483393); TextDrawSetShadow(tdReg[4], 0); TextDrawSetOutline(tdReg[4], 0); TextDrawFont(tdReg[4], 0); tdReg[5] = TextDrawCreate(610.735351, 155.750030, "usebox"); TextDrawLetterSize(tdReg[5], 0.000000, 0.623596); TextDrawTextSize(tdReg[5], 492.758483, 0.000000); TextDrawAlignment(tdReg[5], 1); TextDrawColor(tdReg[5], 0); TextDrawUseBox(tdReg[5], true); TextDrawBoxColor(tdReg[5], 303174399); TextDrawSetShadow(tdReg[5], 0); TextDrawSetOutline(tdReg[5], 0); TextDrawFont(tdReg[5], 0); tdReg[6] = TextDrawCreate(513.562683, 141.583328, "мњK мEќ®"); TextDrawLetterSize(tdReg[6], 0.147335, 0.876666); TextDrawAlignment(tdReg[6], 2); TextDrawColor(tdReg[6], -1); TextDrawSetShadow(tdReg[6], 0); TextDrawSetOutline(tdReg[6], 0); TextDrawBackgroundColor(tdReg[6], 51); TextDrawFont(tdReg[6], 2); TextDrawSetProportional(tdReg[6], 1); tdReg[7] = TextDrawCreate(534.366027, 174.416580, "usebox"); TextDrawLetterSize(tdReg[7], 0.000000, 0.857857); TextDrawTextSize(tdReg[7], 491.821350, 0.000000); TextDrawAlignment(tdReg[7], 1); TextDrawColor(tdReg[7], 0); TextDrawUseBox(tdReg[7], true); TextDrawBoxColor(tdReg[7], -2147483393); TextDrawSetShadow(tdReg[7], 0); TextDrawSetOutline(tdReg[7], 0); TextDrawFont(tdReg[7], 0); tdReg[8] = TextDrawCreate(611.735717, 186.499954, "usebox"); TextDrawLetterSize(tdReg[8], 0.000000, 0.904709); TextDrawTextSize(tdReg[8], 491.821350, 0.000000); TextDrawAlignment(tdReg[8], 1); TextDrawColor(tdReg[8], 0); TextDrawUseBox(tdReg[8], true); TextDrawBoxColor(tdReg[8], -2147483393); TextDrawSetShadow(tdReg[8], 0); TextDrawSetOutline(tdReg[8], 0); TextDrawFont(tdReg[8], 0); tdReg[9] = TextDrawCreate(610.798339, 187.666671, "usebox"); TextDrawLetterSize(tdReg[9], 0.000000, 0.623596); TextDrawTextSize(tdReg[9], 492.758453, 0.000000); TextDrawAlignment(tdReg[9], 1); TextDrawColor(tdReg[9], 0); TextDrawUseBox(tdReg[9], true); TextDrawBoxColor(tdReg[9], 303174399); TextDrawSetShadow(tdReg[9], 0); TextDrawSetOutline(tdReg[9], 0); TextDrawFont(tdReg[9], 0); tdReg[10] = TextDrawCreate(510.345886, 174.083312, "ЈAPOћ©"); TextDrawLetterSize(tdReg[10], 0.147335, 0.876666); TextDrawAlignment(tdReg[10], 2); TextDrawColor(tdReg[10], -1); TextDrawSetShadow(tdReg[10], 0); TextDrawSetOutline(tdReg[10], 0); TextDrawBackgroundColor(tdReg[10], 51); TextDrawFont(tdReg[10], 2); TextDrawSetProportional(tdReg[10], 1); tdReg[11] = TextDrawCreate(534.428894, 206.916519, "usebox"); TextDrawLetterSize(tdReg[11], 0.000000, 0.904709); TextDrawTextSize(tdReg[11], 491.821411, 0.000000); TextDrawAlignment(tdReg[11], 1); TextDrawColor(tdReg[11], 0); TextDrawUseBox(tdReg[11], true); TextDrawBoxColor(tdReg[11], -2147483393); TextDrawSetShadow(tdReg[11], 0); TextDrawSetOutline(tdReg[11], 0); TextDrawFont(tdReg[11], 0); tdReg[12] = TextDrawCreate(611.798706, 219.583312, "usebox"); TextDrawLetterSize(tdReg[12], 0.000000, 0.904709); TextDrawTextSize(tdReg[12], 491.821350, 0.000000); TextDrawAlignment(tdReg[12], 1); TextDrawColor(tdReg[12], 0); TextDrawUseBox(tdReg[12], true); TextDrawBoxColor(tdReg[12], -2147483393); TextDrawSetShadow(tdReg[12], 0); TextDrawSetOutline(tdReg[12], 0); TextDrawFont(tdReg[12], 0); tdReg[13] = TextDrawCreate(610.861328, 220.749984, "usebox"); TextDrawLetterSize(tdReg[13], 0.000000, 0.623596); TextDrawTextSize(tdReg[13], 492.758422, 0.000000); TextDrawAlignment(tdReg[13], 1); TextDrawColor(tdReg[13], 0); TextDrawUseBox(tdReg[13], true); TextDrawBoxColor(tdReg[13], 303174399); TextDrawSetShadow(tdReg[13], 0); TextDrawSetOutline(tdReg[13], 0); TextDrawFont(tdReg[13], 0); tdReg[14] = TextDrawCreate(512.283081, 205.999984, "PEEPAћ"); TextDrawLetterSize(tdReg[14], 0.147335, 0.876666); TextDrawAlignment(tdReg[14], 2); TextDrawColor(tdReg[14], -1); TextDrawSetShadow(tdReg[14], 0); TextDrawSetOutline(tdReg[14], 0); TextDrawBackgroundColor(tdReg[14], 51); TextDrawFont(tdReg[14], 2); TextDrawSetProportional(tdReg[14], 1); tdReg[15] = TextDrawCreate(534.491882, 241.166534, "usebox"); TextDrawLetterSize(tdReg[15], 0.000000, 0.857857); TextDrawTextSize(tdReg[15], 491.821319, 0.000000); TextDrawAlignment(tdReg[15], 1); TextDrawColor(tdReg[15], 0); TextDrawUseBox(tdReg[15], true); TextDrawBoxColor(tdReg[15], -2147483393); TextDrawSetShadow(tdReg[15], 0); TextDrawSetOutline(tdReg[15], 0); TextDrawFont(tdReg[15], 0); tdReg[16] = TextDrawCreate(611.861450, 253.250045, "usebox"); TextDrawLetterSize(tdReg[16], 0.000000, 0.904709); TextDrawTextSize(tdReg[16], 491.821289, 0.000000); TextDrawAlignment(tdReg[16], 1); TextDrawColor(tdReg[16], 0); TextDrawUseBox(tdReg[16], true); TextDrawBoxColor(tdReg[16], -2147483393); TextDrawSetShadow(tdReg[16], 0); TextDrawSetOutline(tdReg[16], 0); TextDrawFont(tdReg[16], 0); tdReg[17] = TextDrawCreate(610.952026, 254.916473, "usebox"); TextDrawLetterSize(tdReg[17], 0.000000, 0.623596); TextDrawTextSize(tdReg[17], 492.758544, 0.000000); TextDrawAlignment(tdReg[17], 1); TextDrawColor(tdReg[17], 0); TextDrawUseBox(tdReg[17], true); TextDrawBoxColor(tdReg[17], 303174399); TextDrawSetShadow(tdReg[17], 0); TextDrawSetOutline(tdReg[17], 0); TextDrawFont(tdReg[17], 0); tdReg[18] = TextDrawCreate(507.129119, 240.416671, "EMAIL"); TextDrawLetterSize(tdReg[18], 0.147335, 0.876666); TextDrawAlignment(tdReg[18], 2); TextDrawColor(tdReg[18], -1); TextDrawSetShadow(tdReg[18], 0); TextDrawSetOutline(tdReg[18], 0); TextDrawBackgroundColor(tdReg[18], 51); TextDrawFont(tdReg[18], 2); TextDrawSetProportional(tdReg[18], 1); tdReg[19] = TextDrawCreate(552.890625, 271.750030, "usebox"); TextDrawLetterSize(tdReg[19], 0.000000, 0.857857); TextDrawTextSize(tdReg[19], 492.289825, 0.000000); TextDrawAlignment(tdReg[19], 1); TextDrawColor(tdReg[19], 0); TextDrawUseBox(tdReg[19], true); TextDrawBoxColor(tdReg[19], -2147483393); TextDrawSetShadow(tdReg[19], 0); TextDrawSetOutline(tdReg[19], 0); TextDrawFont(tdReg[19], 0); tdReg[20] = TextDrawCreate(611.519042, 271.583496, "usebox"); TextDrawLetterSize(tdReg[20], 0.000000, 0.904709); TextDrawTextSize(tdReg[20], 553.197937, 0.000000); TextDrawAlignment(tdReg[20], 1); TextDrawColor(tdReg[20], 0); TextDrawUseBox(tdReg[20], true); TextDrawBoxColor(tdReg[20], -2147483393); TextDrawSetShadow(tdReg[20], 0); TextDrawSetOutline(tdReg[20], 0); TextDrawFont(tdReg[20], 0); tdReg[21] = TextDrawCreate(551.981384, 271.666442, "usebox"); TextDrawLetterSize(tdReg[21], 0.000000, 0.764152); TextDrawTextSize(tdReg[21], 493.227081, 0.000000); TextDrawAlignment(tdReg[21], 1); TextDrawColor(tdReg[21], 0); TextDrawUseBox(tdReg[21], true); TextDrawBoxColor(tdReg[21], 303174399); TextDrawSetShadow(tdReg[21], 0); TextDrawSetOutline(tdReg[21], 0); TextDrawFont(tdReg[21], 0); tdReg[22] = TextDrawCreate(610.609924, 271.499786, "usebox"); TextDrawLetterSize(tdReg[22], 0.000000, 0.764152); TextDrawTextSize(tdReg[22], 554.135253, 0.000000); TextDrawAlignment(tdReg[22], 1); TextDrawColor(tdReg[22], 0); TextDrawUseBox(tdReg[22], true); TextDrawBoxColor(tdReg[22], 303174399); TextDrawSetShadow(tdReg[22], 0); TextDrawSetOutline(tdReg[22], 0); TextDrawFont(tdReg[22], 0); tdReg[23] = TextDrawCreate(611.518737, 287.916748, "usebox"); TextDrawLetterSize(tdReg[23], 0.000000, 0.904709); TextDrawTextSize(tdReg[23], 492.289825, 0.000000); TextDrawAlignment(tdReg[23], 1); TextDrawColor(tdReg[23], 0); TextDrawUseBox(tdReg[23], true); TextDrawBoxColor(tdReg[23], -2147483393); TextDrawSetShadow(tdReg[23], 0); TextDrawSetOutline(tdReg[23], 0); TextDrawFont(tdReg[23], 0); tdReg[24] = TextDrawCreate(610.609558, 287.833190, "usebox"); TextDrawLetterSize(tdReg[24], 0.000000, 0.811004); TextDrawTextSize(tdReg[24], 493.227081, 0.000000); TextDrawAlignment(tdReg[24], 1); TextDrawColor(tdReg[24], 0); TextDrawUseBox(tdReg[24], true); TextDrawBoxColor(tdReg[24], 303174399); TextDrawSetShadow(tdReg[24], 0); TextDrawSetOutline(tdReg[24], 0); TextDrawFont(tdReg[24], 0); tdReg[25] = TextDrawCreate(551.701782, 303.833374, "DESIGNER SALEV & RIPS SPECIAL: CR-MP.RU/FORUM"); TextDrawLetterSize(tdReg[25], 0.106573, 0.695833); TextDrawAlignment(tdReg[25], 2); TextDrawColor(tdReg[25], -2139062017); TextDrawSetShadow(tdReg[25], 0); TextDrawSetOutline(tdReg[25], 0); TextDrawBackgroundColor(tdReg[25], 51); TextDrawFont(tdReg[25], 2); TextDrawSetProportional(tdReg[25], 1); // Player TextDraw RegTD[playerid][0] = CreatePlayerTextDraw(playerid, 551.107238, 153.666687, "SANTIAGO_WELASO"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][0], 0.147335, 0.876666); PlayerTextDrawAlignment(playerid, RegTD[playerid][0], 2); PlayerTextDrawColor(playerid, RegTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, RegTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][0], 51); PlayerTextDrawFont(playerid, RegTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][0], 1); RegTD[playerid][1] = CreatePlayerTextDraw(playerid, 517.905517, 186.166702, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][1], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][1], 595.958984, 8.166666); PlayerTextDrawAlignment(playerid, RegTD[playerid][1], 1); PlayerTextDrawColor(playerid, RegTD[playerid][1], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][1], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][1], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][1], 51); PlayerTextDrawFont(playerid, RegTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][1], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][1], true); RegTD[playerid][2] = CreatePlayerTextDraw(playerid, 518.436889, 219.249938, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][2], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][2], 596.895996, 8.749999); PlayerTextDrawAlignment(playerid, RegTD[playerid][2], 1); PlayerTextDrawColor(playerid, RegTD[playerid][2], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][2], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][2], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][2], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][2], 51); PlayerTextDrawFont(playerid, RegTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][2], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][2], true); RegTD[playerid][3] = CreatePlayerTextDraw(playerid, 518.031311, 252.916488, "HA›MњЏE љћ¬ BBOљA..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][3], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][3], 596.895996, 8.749999); PlayerTextDrawAlignment(playerid, RegTD[playerid][3], 1); PlayerTextDrawColor(playerid, RegTD[playerid][3], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][3], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][3], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][3], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][3], 51); PlayerTextDrawFont(playerid, RegTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][3], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][3], true); RegTD[playerid][4] = CreatePlayerTextDraw(playerid, 509.534729, 270.583374, "MY›CKOќ"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][4], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][4], 537.394165, 11.083332); PlayerTextDrawAlignment(playerid, RegTD[playerid][4], 1); PlayerTextDrawColor(playerid, RegTD[playerid][4], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][4], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][4], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][4], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][4], 51); PlayerTextDrawFont(playerid, RegTD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][4], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][4], true); RegTD[playerid][5] = CreatePlayerTextDraw(playerid, 570.036743, 270.416778, "›EHCKњќ"); PlayerTextDrawLetterSize(playerid, RegTD[playerid][5], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][5], 597.364624, 9.333333); PlayerTextDrawAlignment(playerid, RegTD[playerid][5], 1); PlayerTextDrawColor(playerid, RegTD[playerid][5], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][5], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][5], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][5], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][5], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][5], 51); PlayerTextDrawFont(playerid, RegTD[playerid][5], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][5], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][5], true); RegTD[playerid][6] = CreatePlayerTextDraw(playerid, 509.534820, 287.499938, "ЈPOљOћ›њЏ© PE™њCЏPA њ«..."); PlayerTextDrawLetterSize(playerid, RegTD[playerid][6], 0.147335, 0.876666); PlayerTextDrawTextSize(playerid, RegTD[playerid][6], 603.924011, 11.083333); PlayerTextDrawAlignment(playerid, RegTD[playerid][6], 1); PlayerTextDrawColor(playerid, RegTD[playerid][6], -1); PlayerTextDrawUseBox(playerid, RegTD[playerid][6], true); PlayerTextDrawBoxColor(playerid, RegTD[playerid][6], -256); PlayerTextDrawSetShadow(playerid, RegTD[playerid][6], 0); PlayerTextDrawSetOutline(playerid, RegTD[playerid][6], 0); PlayerTextDrawBackgroundColor(playerid, RegTD[playerid][6], 51); PlayerTextDrawFont(playerid, RegTD[playerid][6], 2); PlayerTextDrawSetProportional(playerid, RegTD[playerid][6], 1); PlayerTextDrawSetSelectable(playerid, RegTD[playerid][6], true); Может кому нибудь, нужен будет
  19. Автор: ShiGanKa Время работы: 30мин Скачать .pwn версию : https://yadi.sk/d/ZD0DH2fM3Kr9sa Скачать .itd версию (для дальнейшего редактирования): https://yadi.sk/d/ZD0DH2fM3Kr9sa Прототипом для этого ТД полужил TextDraw с cryfox rp(уже закрытого)
  20. SCRIPTMAN

    TextDraw Автосалон[NEW]

    Всем привет! Как я и обещал, я переделал TextDraw Автосалон'а. Старался сделать его красивым, ну ровным - эт естестна) Делал я его час, возможно "+" заслужил(не выпрашиваю ) Автор: Shapik Код: //TD Автосалон бу Шапик new PlayerText:Textdraw0[MAX_PLAYERS]; new PlayerText:Textdraw1[MAX_PLAYERS]; new PlayerText:Textdraw2[MAX_PLAYERS]; new PlayerText:Textdraw3[MAX_PLAYERS]; new PlayerText:Textdraw4[MAX_PLAYERS]; new PlayerText:Textdraw5[MAX_PLAYERS]; new PlayerText:Textdraw6[MAX_PLAYERS]; new PlayerText:Textdraw7[MAX_PLAYERS]; new PlayerText:Textdraw8[MAX_PLAYERS]; new PlayerText:Textdraw9[MAX_PLAYERS]; new PlayerText:Textdraw10[MAX_PLAYERS]; new PlayerText:Textdraw11[MAX_PLAYERS]; new PlayerText:Textdraw12[MAX_PLAYERS]; Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 582.497802, 163.666656, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.000000, 1.822221); PlayerTextDrawTextSize(playerid, Textdraw0[playerid], 627.692504, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1); PlayerTextDrawColor(playerid, Textdraw0[playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw0[playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw0[playerid], -16711681); PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0); PlayerTextDrawFont(playerid, Textdraw0[playerid], 0); Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 582.497863, 217.916580, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.000000, 1.822221); PlayerTextDrawTextSize(playerid, Textdraw1[playerid], 627.692504, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw1[playerid], 1); PlayerTextDrawColor(playerid, Textdraw1[playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw1[playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], -16711681); PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 0); PlayerTextDrawFont(playerid, Textdraw1[playerid], 0); Textdraw2[playerid] = CreatePlayerTextDraw(playerid, 631.223999, 185.250000, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw2[playerid], 0.000000, 3.053704); PlayerTextDrawTextSize(playerid, Textdraw2[playerid], 578.966308, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw2[playerid], 1); PlayerTextDrawColor(playerid, Textdraw2[playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw2[playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw2[playerid], 1784335871); PlayerTextDrawSetShadow(playerid, Textdraw2[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw2[playerid], 0); PlayerTextDrawFont(playerid, Textdraw2[playerid], 0); Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 581.560546, 217.916671, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw3[playerid], 0.000000, 1.822219); PlayerTextDrawTextSize(playerid, Textdraw3[playerid], 529.302917, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw3[playerid], 1); PlayerTextDrawColor(playerid, Textdraw3[playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw3[playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw3[playerid], -764862721); PlayerTextDrawSetShadow(playerid, Textdraw3[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw3[playerid], 0); PlayerTextDrawFont(playerid, Textdraw3[playerid], 0); Textdraw4[playerid] = CreatePlayerTextDraw(playerid, 582.029174, 184.666641, "usebox"); PlayerTextDrawLetterSize(playerid, Textdraw4[playerid], 0.000000, -2.866300); PlayerTextDrawTextSize(playerid, Textdraw4[playerid], 528.834472, 0.000000); PlayerTextDrawAlignment(playerid, Textdraw4[playerid], 1); PlayerTextDrawColor(playerid, Textdraw4[playerid], 0); PlayerTextDrawUseBox(playerid, Textdraw4[playerid], true); PlayerTextDrawBoxColor(playerid, Textdraw4[playerid], -764862721); PlayerTextDrawSetShadow(playerid, Textdraw4[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw4[playerid], 0); PlayerTextDrawFont(playerid, Textdraw4[playerid], 0); Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 588.462951, 163.333312, "Back"); PlayerTextDrawLetterSize(playerid, Textdraw5[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw5[playerid], 1); PlayerTextDrawColor(playerid, Textdraw5[playerid], -1378294017); PlayerTextDrawSetShadow(playerid, Textdraw5[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw5[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw5[playerid], 51); PlayerTextDrawFont(playerid, Textdraw5[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw5[playerid], 1); Textdraw6[playerid] = CreatePlayerTextDraw(playerid, 588.931579, 217.583374, "Next"); PlayerTextDrawLetterSize(playerid, Textdraw6[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw6[playerid], 1); PlayerTextDrawColor(playerid, Textdraw6[playerid], -1378294017); PlayerTextDrawSetShadow(playerid, Textdraw6[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw6[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw6[playerid], 51); PlayerTextDrawFont(playerid, Textdraw6[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw6[playerid], 1); Textdraw7[playerid] = CreatePlayerTextDraw(playerid, 592.210754, 189.583267, "Buy"); PlayerTextDrawLetterSize(playerid, Textdraw7[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw7[playerid], 1); PlayerTextDrawColor(playerid, Textdraw7[playerid], 16711935); PlayerTextDrawSetShadow(playerid, Textdraw7[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw7[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw7[playerid], 51); PlayerTextDrawFont(playerid, Textdraw7[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw7[playerid], 1); Textdraw8[playerid] = CreatePlayerTextDraw(playerid, 535.519958, 218.750015, "Color"); PlayerTextDrawLetterSize(playerid, Textdraw8[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw8[playerid], 1); PlayerTextDrawColor(playerid, Textdraw8[playerid], 12582911); PlayerTextDrawSetShadow(playerid, Textdraw8[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw8[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw8[playerid], 51); PlayerTextDrawFont(playerid, Textdraw8[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw8[playerid], 1); Textdraw9[playerid] = CreatePlayerTextDraw(playerid, 541.142089, 163.333297, "Exit"); PlayerTextDrawLetterSize(playerid, Textdraw9[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw9[playerid], 1); PlayerTextDrawColor(playerid, Textdraw9[playerid], 12582911); PlayerTextDrawSetShadow(playerid, Textdraw9[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw9[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw9[playerid], 51); PlayerTextDrawFont(playerid, Textdraw9[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw9[playerid], 1); Textdraw10[playerid] = CreatePlayerTextDraw(playerid, 251.596557, 410.666717, "Mercedes-Benz GL63"); PlayerTextDrawLetterSize(playerid, Textdraw10[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw10[playerid], 1); PlayerTextDrawColor(playerid, Textdraw10[playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw10[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw10[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw10[playerid], 51); PlayerTextDrawFont(playerid, Textdraw10[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw10[playerid], 1); Textdraw11[playerid] = CreatePlayerTextDraw(playerid, 313.440917, 425.833526, "411"); PlayerTextDrawLetterSize(playerid, Textdraw11[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw11[playerid], 1); PlayerTextDrawColor(playerid, Textdraw11[playerid], -1); PlayerTextDrawSetShadow(playerid, Textdraw11[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw11[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw11[playerid], 51); PlayerTextDrawFont(playerid, Textdraw11[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw11[playerid], 1); Textdraw12[playerid] = CreatePlayerTextDraw(playerid, 536.925537, 144.083297, "ABВЏOCAВ‡OH"); PlayerTextDrawLetterSize(playerid, Textdraw12[playerid], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, Textdraw12[playerid], 1); PlayerTextDrawColor(playerid, Textdraw12[playerid], 16777215); PlayerTextDrawSetShadow(playerid, Textdraw12[playerid], 0); PlayerTextDrawSetOutline(playerid, Textdraw12[playerid], 0); PlayerTextDrawBackgroundColor(playerid, Textdraw12[playerid], 51); PlayerTextDrawFont(playerid, Textdraw12[playerid], 1); PlayerTextDrawSetProportional(playerid, Textdraw12[playerid], 1);
  21. Alex_Dredd

    Маппинг отеля. Ч. 1 из 4.

    Представляю свой маппинг отеля преблизительно делал 20 минут. В него входит коридор, ресепшен, сидения для ожидания, коридор с комнатами ( будующих 3 частях будет комнаты к ним элит эконом и среднего класса.) Далее увидите по скринам.
×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.