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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Дорогие пользователи портала CR-MP Посмотрел данный раздел и не нашел данную систему! Теперь немного о системе: Радары можно будет добавлять прямо из игры Далее они будут сохраняться в базу данных Ну и так же после рестарта они не удаляться! Но удалять придется их через саму БД И так начнем: 1) Нам понадобятся плагины такие как mysql r-38,scanff,streamer и сам командный процессор Теперь начинаем в начало мода вставляем следующее #define MAX_RADARS 50 #define publics:%0(%1) forward %0(%1); public %0(%1) #define SFCM(%0,%1,%2) do{ new msg[141]; format(msg,141,%2); SendClientMessage(%0,%1,msg); } while(FALSE) #define SCM SendClientMessage #define TOTAL_RADAR "`radar`" new RadarIterator[MAX_RADARS]; new radariter; #define foreachRadar(%0) for(new _i, %0=RadarIterator[_i]; _i <radariter; %0=RadarIterator[++_i]) enum rInfo{ rid, Float:rX, Float:rY, Float:rZ, Float:rRZ, Float:rR, rSpeed, rObj }; new RadarInfo[MAX_RADARS][rInfo]; new TOTALRADAR; new RadarTimer[MAX_PLAYERS]; new RadarShtraf[MAX_PLAYERS]; new RadarMaxSpeed[MAX_RADARS]; В Public OnPlayerDisconnect if(RadarTimer[playerid]!=0){ RadarShtraf[playerid] = 0; KillTimer(RadarTimer[playerid]); } Теперь загрузку радаров publics: OnLoadRadarCallback() { new time = GetTickCount(); new r, f; cache_get_data(r, f); for(new i = 0; i < r; i++) { RadarInfo[i][rid] = cache_get_field_content_int(i, "id", mysql); RadarInfo[i][rX] = cache_get_field_content_float(i, "x", mysql); RadarInfo[i][rY] = cache_get_field_content_float(i, "y", mysql); RadarInfo[i][rZ] = cache_get_field_content_float(i, "z", mysql); RadarInfo[i][rRZ] = cache_get_field_content_float(i, "rz", mysql); RadarInfo[i][rR] = cache_get_field_content_float(i, "rad", mysql); RadarInfo[i][rSpeed] = cache_get_field_content_int(i, "speed", mysql); RadarInfo[i][rObj] = CreateObject(18880, RadarInfo[i][rX], RadarInfo[i][rY], RadarInfo[i][rZ], 0.0, 0.0, RadarInfo[i][rRZ]); new int = CreateDynamicSphere(RadarInfo[i][rX], RadarInfo[i][rY], RadarInfo[i][rZ], RadarInfo[i][rR], 0, 0, -1); //Iter_Add(RadarIterator, int); RadarIterator[radariter++]=int; RadarMaxSpeed[int]=RadarInfo[i][rSpeed]; TOTALRADAR++; } printf("[Загрузка: %d радаров, потрачено %d (ms)", TOTALRADAR,GetTickCount() - time); return 1; } Если у вас есть данные коллбеки то просто добавьте содержимое,ну а если нет то добавляем данные строки public OnPlayerEnterDynamicArea(playerid, areaid) { foreachRadar(i) { if(areaid == i) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2) { //if(IsAPlane(GetPlayerVehicleID(playerid)) || IsABoat(GetPlayerVehicleID(playerid)) || IsABike(GetPlayerVehicleID(playerid))) break; // это условие проверяет не сидите ли вы в самолете, лодке или велике!!! RadarTimer[playerid] = SetTimerEx("CallBackRadar",500,true,"ii",playerid,areaid); } break; } } return true; } public OnPlayerLeaveDynamicArea(playerid, areaid) { foreachRadar(i){ if(areaid == i){ RadarShtraf[playerid] = 0; KillTimer(RadarTimer[playerid]); break; } } return true; } Теперь добавим запрос в БД,его вставляем в OnPlayerEditObject if(response == EDIT_RESPONSE_FINAL){// player clicked on savе if(GetPVarInt(playerid, "addrad") == 1){ RadarInfo[TOTALRADAR][rid] = TOTALRADAR; RadarInfo[TOTALRADAR][rX] = fX; RadarInfo[TOTALRADAR][rY] = fY; RadarInfo[TOTALRADAR][rZ] = fZ; RadarInfo[TOTALRADAR][rRZ] = fRotZ; RadarInfo[TOTALRADAR][rSpeed] = GetPVarInt(playerid, "speed"); mysql_format(mysql, MySqlStr, sizeof(MySqlStr), "INSERT INTO "TOTAL_RADAR" (`x`, `y`, `z`, `rz`, `speed`) VALUES ('%f', '%f', '%f', '%f', '%i')",fX,fY,fZ,fRotZ,RadarInfo[TOTALRADAR][rSpeed]); mysql_function_query(mysql, MySqlStr, true, "", ""); new int = CreateDynamicSphere(fX,fY,fZ, 100, 0, 0, -1); //Iter_Add(RadarIterator, int); RadarIterator[radariter++]=int; RadarMaxSpeed[int] = RadarInfo[TOTALRADAR][rSpeed]; DeletePVar(playerid, "addrad"); DeletePVar(playerid, "speed"); } } else if(response == EDIT_RESPONSE_CANCEL){// player cancelled (ESC) DestroyObject(objectid); if(GetPVarInt(playerid, "addrad")==1) { TOTALRADAR--; DeletePVar(playerid, "addrad"); DeletePVar(playerid, "speed"); } } else if(response == EDIT_RESPONSE_UPDATE){// player moved the object (edition did not stop at all) SetObjectPos(objectid, fX, fY, fZ); SetObjectRot(objectid, fRotX, fRotY, fRotZ); } Данный коллбек отвечает за сами штрафы,его добавим в самый конец вашего мода publics: CallBackRadar(playerid,area){ if(RadarShtraf[playerid] == 0){ if(IsACop(playerid) && PlayerInfo[playerid][pMember] == 4) return true; new speed = SpeedVehicle(playerid); if(speed >= RadarMaxSpeed[area]+10){> new shtraf; shtraf=(speed-RadarMaxSpeed[area])*RadarMaxSpeed[area]; PlayerInfo[playerid][pCash] -= shtraf; RadarShtraf[playerid] = 1; SFCM(playerid,COLOR_LIGHTRED,"[ДПС] Вы нарушили скоростной режим на %d м/ч. Штраф: %d!",speed-RadarMaxSpeed[area],shtraf); } } return true; } Ну и самое последнее это сама команда для добавление радаров CMD:addradar(playerid, params[]){ if(AdLevel[playerid] < 1) return true; //уровень админа if(sscanf(params, "i", params[0])) return SCM(playerid, COLOR_GREY, "{F74848}» Введите{FFFFFF}: /addradar [скорость]"); new Float:X, Float:Y, Float:Z; SetPVarInt(playerid, "addrad", 1); SetPVarInt(playerid, "speed", params[0]); GetPlayerPos(playerid, X, Y, Z); TOTALRADAR++; RadarInfo[TOTALRADAR][rObj] = CreateObject(18880, X+1, Y+1, Z+1, 0.0,0.0,0.0); EditObject(playerid, RadarInfo[TOTALRADAR][rObj]); return true; } Ну вот и все,вот такая маленькая система! На mnINI можете переведу,но советую на БД ставить,что бы не произошло с ними ни что! Спасибо за внимание! Удачного использования! Копировать на другие порталы строго запрещено! Автор урока: Я
  2. Дорогие пользователи портала CR-MP Недавно я выкладывал [FS] скрипт,но многие просили меня сделать мануал,так как у многих не выходило перенести в мод! И так думаю начнем! ***В начало мода*** #define TABLE_ATM "atm" #define MAX_ATM 50 //количество разрешено new BigSTR[1024]; // Для больших запросов new TOTALATM; enum atm { aID, Float:aX, Float:aY, Float:aZ, Float:arX, Float:arY, Float:arZ, }; new ATMInfo[MAX_ATM][atm]; new ATM[MAX_ATM]; new ATMIcon[MAX_ATM]; new Text3D:ATMText[MAX_ATM] = {Text3D:-1, ...}; ***К любым stock'aм или в начало тоже можно*** stock LoadATM() { new time = GetTickCount(); format(BigSTR, sizeof BigSTR, "SELECT * FROM `"TABLE_ATM"` ORDER BY `aID` ASC", true); new Cache:result = mysql_query(connects, BigSTR, true); new rows = cache_get_row_count(); if(!rows) return print("stock LoadATM() - not loaded."); TOTALATM = rows; for(new idx = 1; idx <= rows; idx++) { ATMInfo[idx][aID] = cache_get_row_int(idx-1,0, connects); ATMInfo[idx][aX] = cache_get_row_float(idx-1,1, connects); ATMInfo[idx][aY] = cache_get_row_float(idx-1,2, connects); ATMInfo[idx][aZ] = cache_get_row_float(idx-1,3, connects); ATMInfo[idx][arX] = cache_get_row_float(idx-1,4, connects); ATMInfo[idx][arY] = cache_get_row_float(idx-1,5, connects); ATMInfo[idx][arZ] = cache_get_row_float(idx-1,6, connects); ATM[idx] = CreateObject(2754, ATMInfo[idx][aX], ATMInfo[idx][aY], ATMInfo[idx][aZ], ATMInfo[idx][arX], ATMInfo[idx][arY], ATMInfo[idx][arZ]); SetObjectMaterialText(ATM[idx], "\nБанкомат\n \n \n \n \n ",2,OBJECT_MATERIAL_SIZE_256x256,"Tahoma", 48, 1, 0xFF000000,0xFFFFFF00, OBJECT_MATERIAL_TEXT_ALIGN_CENTER); ATMIcon[idx] = CreateDynamicMapIcon(ATMInfo[idx][aX],ATMInfo[idx][aY],ATMInfo[idx][aZ]-20,56,0); ATMText[idx] = CreateDynamic3DTextLabel("{FFFFFF}*** Банкомат ***\n\n{AFAFAF}Чтобы воспользоваться\nуслугами\nнажмите ALT",COLOR_LIGHTBLUE, ATMInfo[idx][aX],ATMInfo[idx][aY],ATMInfo[idx][aZ]+2,15.0); } printf("[ Загрузка ... ] %d - банкомата успешно загружено (%d мс)", TOTALATM,GetTickCount()- time); cache_delete(result); return true; } *** в OnGameModeINit *** LoadATM(); *** Ко всем командам *** CMD:addatm(playerid) { if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: Вы не уполномочены использовать данную команду!"); ShowPlayerDialog(playerid, 100, 0, "Добавить ATM", "Вы хотите начать установку банкомата?", "Да", "Нет"); return true; } CMD:delatm(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: Вы не уполномочены использовать данную команду!"); for(new i = 1; i <= TOTALATM; i++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, ATMInfo[i][aX],ATMInfo[i][aY],ATMInfo[i][aZ])) { ATMInfo[i][aX] = 0.0; ATMInfo[i][aY] = 0.0; ATMInfo[i][aZ] = 0.0+9999; format(BigSTR, sizeof BigSTR, "DELETE FROM `"TABLE_ATM"` WHERE aID = '%d'",i); mysql_function_query(connects, BigSTR, false, "", ""); DestroyObject(ATM[i]); DestroyDynamicMapIcon(ATMIcon[i]); DestroyDynamic3DTextLabel(ATMText[i]); SendClientMessage(playerid, -1, "Банкомат удален."); } } return true; } *** Ко всем своим диалогам *** case 100: { if(!response) return true; new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += floatsin(-angle, degrees); y += floatcos(-angle, degrees); new atm1; SendClientMessage(playerid, COLOR_LIGHTRED, "Чтобы выйти, нажмите: ESC и чтобы сохранить, нажмите курсором: СОХРАНИТЬ"); atm1 = CreateObject(2754, x, y, z-0.35, 0.0, 0.0, 0.0); SetPVarInt(playerid, "LoadATM", atm1+1); EditObject(playerid, atm1); } *** public OnPlayerEditObject *** if(GetPVarInt(playerid, "LoadATM") > 0) { if(!playerobject) { if(!IsValidObject(objectid)) return true; MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ); } if(response == EDIT_RESPONSE_FINAL) { TOTALATM++; ATMInfo[TOTALATM][aX] = fX; ATMInfo[TOTALATM][aY] = fY; ATMInfo[TOTALATM][aZ] = fZ; ATMInfo[TOTALATM][arX] = fRotX; ATMInfo[TOTALATM][arY] = fRotY; ATMInfo[TOTALATM][arZ] = fRotZ; SendClientMessage(playerid,COLOR_YELLOW,"Вы установили банкомат"); DestroyObject(GetPVarInt(playerid, "LoadATM")-1); ATM[TOTALATM] = CreateObject(2754, fX, fY, fZ, fRotX, fRotY, fRotZ); SetObjectMaterialText(ATM[TOTALATM], "\nБанкомат\n \n \n \n \n ",2,OBJECT_MATERIAL_SIZE_256x256,"Tahoma", 48, 1, 0xFF000000,0xFFFFFF00, OBJECT_MATERIAL_TEXT_ALIGN_CENTER); ATMIcon[TOTALATM] = CreateDynamicMapIcon(fX, fY, fZ-20,52,0); ATMText[TOTALATM] = CreateDynamic3DTextLabel("{FFFFFF}*** Банкомат ***\n\n{AFAFAF}Чтобы воспользоваться\nуслугами\nнажмите ALT",COLOR_LIGHTBLUE, fX, fY, fZ+2,15.0); DeletePVar(playerid, "LoadATM"); CancelEdit(playerid); format(BigSTR, sizeof BigSTR,"INSERT INTO `"TABLE_ATM"` (aID, aX, aY, aZ, arX, arY, arZ)VALUES (%d,'%f','%f','%f','%f', '%f', '%f')", TOTALATM,ATMInfo[TOTALATM][aX],ATMInfo[TOTALATM][aY],ATMInfo[TOTALATM][aZ], ATMInfo[TOTALATM][arX], ATMInfo[TOTALATM][arY], ATMInfo[TOTALATM][arZ]); mysql_function_query(connects, BigSTR, false, "",""); } if(response == EDIT_RESPONSE_CANCEL) { DeletePVar(playerid, "LoadATM"); SendClientMessage(playerid, COLOR_LIGHTRED, "Установка банкомата отменена"); DestroyObject(objectid); CancelEdit(playerid); } return true; } И самое важное это сделать импорт базы данных! Смотрите что бы не было ошибок CREATE TABLE IF NOT EXISTS `atm` ( `aID` INT( 11 ) NOT NULL AUTO_INCREMENT , `aX` FLOAT NOT NULL , `aY` FLOAT NOT NULL , `aZ` FLOAT NOT NULL , `arX` FLOAT NOT NULL , `arY` FLOAT NOT NULL , `arZ` FLOAT NOT NULL , PRIMARY KEY ( `aID` ) ) Если будут какие то ошибки пишите,так как у меня они так же были,но после исправил и проверил! Только после выдал всю систему вам! Автор: Я Копировать на другие порталы строго запрещено!
  3. К глобальным массивам(те которые в самом верху ) добавляем: new Text:Textdraw[MAX_PLAYERS]; Добавляем в: public OnPlayerConnect(playerid) Вот это: Textdraw[playerid] = TextDrawCreate(36.000000, 144.000000, "_"); TextDrawBackgroundColor(Textdraw[playerid], 255); TextDrawFont(Textdraw[playerid], 2); TextDrawLetterSize(Textdraw[playerid], 0.250000, 1.099999); TextDrawColor(Textdraw[playerid], -1); TextDrawSetOutline(Textdraw[playerid], 0); TextDrawSetProportional(Textdraw[playerid], 1); TextDrawSetShadow(Textdraw[playerid], 1); TextDrawUseBox(Textdraw[playerid], 1); TextDrawBoxColor(Textdraw[playerid], 118); TextDrawTextSize(Textdraw[playerid], 220.000000, 5.000000); Дальше добавляем две функции: stock player_SendTD(playerid, text[], time) { TextDrawSetString(Textdraw[playerid], text); SetTimerEx("TimeHideForPlayer", time, 1, "i", playerid); return TextDrawShowForPlayer(playerid, Textdraw[playerid]); } forward TimeHideForPlayer(playerid); public TimeHideForPlayer(playerid) TextDrawHideForPlayer(playerid, Textdraw[playerid]); Автор: неизвестно Скриншот:
  4. Vladimir_Kulkov

    Основа банкомата

    Представляю вашему внимаю основу динамических банкоматов,это всего лишь основа,никаких действий на кнопки и диалогов нет.И так начнём
  5. Vladimir_Kulkov

    Выход при аресте

    Автор: Денис Личенко Автор переделки: Владимир Кульков. К #define добавить если нету. #define SCMToAll SendClientMessageToAll #define COLOR_RED (0xF04245FF) if(PlayerCuffed[playerid] == 2)//Ставьте вашу проверку { new sendername [ MAX_PLAYER_NAME ]; GetPlayerName ( playerid , sendername , sizeof ( sendername ) ); new string[130]; format(string, sizeof(string), "%s был посажен в тюрьму сервером. Причина: Выход при аресте",sendername); SCMToAll(COLOR_RED,string); new RandJail = 1 + random(4);//Ставьте вашу проверку PlayerInfo[playerid][pJailed] = RandJail;//Ставьте вашу проверку PlayerInfo[playerid][pJailTime] = 30*60;//Ставьте вашу проверку }
  6. Vladimir_Kulkov

    Поворотники, аварийка

    В этой теме и поворотники и аварийка.
  7. Описание: Подавать объявления ( /ad ) можно когда угодно НО после того как предыдущее проверят в СМИ, таймера на /ad нету, как проверили так можно подавать следующее. Для СМИ команда /edit (без iD без ничего) Если оставить диалог пустой то объявление подастся без изменений и в чате будет написано " Объявление проверил ... " Или же можно изменить тогда в чате будет писаться " Объявление отредактировал ... " Ну и в крайнем случае отклонить. Скрины:
  8. Vladimir_Kulkov

    Гонка на роликах.

    Администратор запускает гонку /startrace и через 2 минуты начинается гонка. В конце гонки пишет, кто каким пришел. Игрок пришедший первым - получает 30.000р, второй - 20.000р, третий - 10.000р. Сумму можете изменить в дефайнах. Также, администратор может в любой момент остановить гонку - /stoprace
  9. Многие просили это и постили очень много тем но им не отвечали понятно как сделать музыку с сайтов в определённом месте: Для начала, вам нужно определиться, где будет играть музыка. Вам нужны координаты того места, откуда вы бы хотели, чтобы играла музыка, это x, y, z Потом в public OnPlayerUpdate(playerid) добавляем: if(IsPlayerInRangeOfPoint(playerid,радиус,x,y,z)) { if(!GetPVarInt(playerid,"music")) { SetPVarInt(playerid,"music",1); PlayAudioStreamForPlayer(playerid, "ссылка",x,y,z,радиус,true); } } else { if(GetPVarInt(playerid,"music")) { DeletePVar(playerid,"music"); StopAudioStreamForPlayer(playerid); } } x,y,z - заменяете координатами радиус - к примеру: 80 ссылка - заменяете ссылкой с музыкой/радио Автор:Rush
  10. Ко всем new: new par; new par1; В public OnPlayerPickUpPickup if (pickupid == par){ SetPlayerPos(playerid, 2134.0425,-1961.4999,188.2590); return 1; } if (pickupid == par1){ SetPlayerPos(playerid, 2133.6538,-1961.9203,20.3229); return 1; } В public OnGameModeInit: par = CreatePickup(1318,1,2133.8491,-1964.0739,20.3842); //вверх par1 = CreatePickup(1318,1,2133.8196,-1964.5046,188.3337); //вниз CreateObject(1938, 2133.6600,-1963.0839,188.3338, 0, 0, -90); // лифт наверху CreateObject(1938, 2133.6600,-1963.0839,20.3962, 0, 0, -90); // лифт внизу Автор: gold-runet
  11. Здраствуйте уважаемые пользователи cr-mp.ru К вашему вниманию были скрипты Падающего снега. Но выглядело не очень, и не у всех они работали. Я сделал вам мануал как добавить сам снег в мод. Данный снег падает сам, отключить его можно только если удалить код из Pawno. Чтобы добавить снег в мод, нужно В public OnGameModeInit добавить: for(new x=-3000; x < 3000; x+=100) for(new y=-3000; y < 3000; y+=100) CreateDynamicObject(18864, x, y, 0.0, 0.0, 0.0, 0.0); Спасибо за внимание.
  12. Здравствуйте уважаемые пользователи cr-mp.ru. Сегодня я расскажу вам как создать пикап с бонусом. Начнем. Ко всем new new bonus; Далее вставляем в (OnGameModeInit) bonus = CreatePickup(ID пикапа,тип пикапа,X,Y,Z, ID виртуального мира пикапа);// Координаты X,Y,Z сменить на свои. Идем далее в (OnPlayerPickUpPickup) И добавим следующее if(pickupid == bonus) // Это наше название пикапа, то есть когда мы записывали в переменной FFF значит и название будет FFF. { if(PlayerInfo[playerid][pLevel] >= 3) // Это проверка на то что-бы игрок не получил бонус два раза. { SendClientMessage(playerid, COLOR_PURPLE, "Этот бонус только для новичков 1 лвл."); return 1; } SendClientMessage(playerid,0xFFFF00AA,"Вы получили свой бонус"); SendClientMessage(playerid, COLOR_WHITE, "2.000.000Р."); SendClientMessage(playerid, COLOR_WHITE, "3 LVL."); SendClientMessage(playerid, COLOR_WHITE, "Все лицензии."); PlayerInfo[playerid][pLevel] = 3; // Где 3 это уровень, если хотите уровень больше или меньше меняйте 3 на ваш уровень. GivePlayerMoney(playerid, 2000000); // 3000000 - это количество денег, которое выдаст вам. PlayerInfo[playerid][pCarLic] = 1; // Лицензия на вождение. PlayerInfo[playerid][pFlyLic] = 1; // Лицензия на воздушный транспорт. PlayerInfo[playerid][pMotoLic] = 1; // Лицензия на мотовождения. PlayerInfo[playerid][pBoatLic] = 1; // Лицензия на водное вождение. PlayerInfo[playerid][pGunLic] = 1; // Лицензия на оружие. } За место моих бонусов можете вставить ваши! На этом урок окончен!
  13. Na'Vi

    Запрет /zap

    Добрый день! Команда для администраторов и она запрещает всем лидерам писать в гос.новости Сперва создаем переменную: new government_mute; Вот в основном код: if(strcmp(cmdtext, "/gov_mute", true) == 0) { government_mute = !government_mute; SendClientMessage(playerid, -1, (government_mute) ? (!"Вы запретили писать в гос.новости") : (!"Вы разрешили писать в гос.новости")); return 1; } Ну теперь в команду /gov или /gnews (или какая у вас гос.новости) добавляем такое: if(government_mute) return SendClientMessage(playerid, -1, !"Администратор запретил писать в гос.новости!"); Теперь DC_CMD: CMD:zap(playerid) { government_mute = !government_mute; SendClientMessage(playerid, -1, (government_mute) ? (!"Вы запретили писать в гос.новости") : (!"Вы разрешили писать в гос.новости")); return 1; } Автор: MrJunior
  14. Na'Vi

    Донат система

    Добрый день Вот система доната на процессоре DC_CMD CMD:donate(playerid, params[])//1055 { ShowPlayerDialog(playerid, 1055, DIALOG_STYLE_LIST, "DONATE: MOY ROLE PLAY", "[1] > Активировать донат - код\n[2] > Информация о донат\n[3] > Игровые привилегии\n[4] > Конвертер виртуальных средств\n[5] > Сменить никнейм", "Выбрать", "Отмена"); return true; } case 1055: { if(response) { switch(listitem) { case 0: ShowPlayerDialog(playerid, 3242, DIALOG_STYLE_INPUT, "DONATE: Активация донат - кода","Введите донат код, который вы получили при оплате и нажмите 'Далее':\n","Далее","Отмена"); case 1: format(stringer, sizeof(stringer), "{FFFFFF}На данный момент у Вас: {00B464}%d {FFFFFF}донат очков\n\nВы можете потратить эти очки на конвертер виртуальных средств или же игровые привилегии", PlayerInfo[playerid][pDonatemoney2]), ShowPlayerDialog(playerid, 228228, DIALOG_STYLE_MSGBOX, "DONATE: Информация о донате", stringer, "Продолжить", "Назад"); case 2: GameDonate(playerid); case 3: format(stringer, sizeof(stringer), "{FFFFFF}Действующий тариф: {ffa500}Бонусный {FFFFFF}(5 к 15 тыс.)\n\nНа счету вашего аккаунта {ffa500}%d {FFFFFF}донат очка(о/ов)\n\nМаксимально доступная выручка с обмена составляет %d $", PlayerInfo[playerid][pDonatemoney2], PlayerInfo[playerid][pDonatemoney2]*5015), ShowPlayerDialog(playerid, 12953, DIALOG_STYLE_INPUT, "DONATE: Конвертер виртуальных средств", stringer, "Продолжить", "Назад"); case 4: ShowPlayerDialog(playerid, 9943, DIALOG_STYLE_INPUT, "DONATE: Сменить никнейм", "Данная услуга стоит 500 донат очков\n\nНапишите новый никнейм в окошко\n\nНапример: Grand_Persona, Vasya_Pupkin\n\nЧтобы не было лишних проблем, проверьте каждый знак своего будущего никнейма", "Отправить", "Назад"); } } else return true; } case 26363: { if(response) { switch(listitem) { case 0: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pDonatemoney2] -=200; PlayerInfo[playerid][pSDPistol] = 100; PlayerInfo[playerid][pDesertEagle] = 100; PlayerInfo[playerid][pShotGun] = 100; PlayerInfo[playerid][pMP5] = 100; PlayerInfo[playerid][pM4] = 100; PlayerInfo[playerid][pAK47] = 100; SendClientMessage(playerid,COLOR_WHITE,"Вы прокачали все скиллы себе за {00B464}200 {FFFFFF}донат очков."); } case 1: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pBoxSkill] = 999999; PlayerInfo[playerid][pKongfuSkill] = 999999; PlayerInfo[playerid][pKickboxSkill] = 9999999; SendClientMessage(playerid, COLOR_WHITE, "Вы прокачали боевые скиллы себе за {00B464}200 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 200; } case 2: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pDrugs] += 2500; PlayerInfo[playerid][pMats] += 2500; SendClientMessage(playerid, COLOR_WHITE, "Вам выдано 2500 материалов и 2500 наркотиков за {00B464}50 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 50; } case 3: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pVodPrava] = 1; SendClientMessage(playerid, COLOR_WHITE, "Вы получили водительские права за {00B464}35 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 35; } case 4: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pWarns] = 0; PlayerInfo[playerid][punWarnstime] = 0; PlayerInfo[playerid][punWarns] = 0; SendClientMessage(playerid, COLOR_WHITE, "Вы аннулировали варны за {00B464}50 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 50; } case 5: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pLevel] += 1; SendClientMessage(playerid, COLOR_WHITE, "Вы прибавили 1 к игровому уровню за {00B464}150 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 150; } case 6: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pWanted] =0; PlayerInfo[playerid][pDonatemoney2] -=5; SendClientMessage(playerid,COLOR_WHITE,"Вы понизили свой уровень розыска за {00B464}5 {FFFFFF}донат очков."); } case 7: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pNarcoLomka] += 1000; PlayerInfo[playerid][pDonatemoney2] -=30; SendClientMessage(playerid,COLOR_WHITE,"Вы прибавили себе наркозависимость на 1000 за {00B464}30 {FFFFFF}донат очков."); } case 8: { if(PlayerInfo[playerid][pDonatemoney2] if(PlayerInfo[playerid][pNarcoLomka] PlayerInfo[playerid][pNarcoLomka] -= 1000; PlayerInfo[playerid][pDonatemoney2] -=30; SendClientMessage(playerid,COLOR_WHITE,"Вы убавили себе наркозависимость на 1000 за {00B464}30 {FFFFFF}донат очков."); } case 9: { if(PlayerInfo[playerid][pDonatemoney2] GivePlayerWeapon(playerid, 24, 1000); GivePlayerWeapon(playerid, 29, 1000); GivePlayerWeapon(playerid, 31, 1000); GivePlayerWeapon(playerid, 25, 1000); PlayerInfo[playerid][pDonatemoney2] -=30; SendClientMessage(playerid,COLOR_WHITE,"Вам выдан комплект оружия за {00B464}30 {FFFFFF}донат очков."); } case 10: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pDonatemoney2] -=70; PlayerInfo[playerid][pZakonp] += 50; SendClientMessage(playerid,COLOR_WHITE,"Вы прибавили себе законопослушность на 50 за {00B464}70 {FFFFFF}донат очков."); } case 11: { if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pMuted] = 0; PlayerInfo[playerid][pMuteTime] = 0; SendClientMessage(playerid, COLOR_WHITE, "Вы сняли бан чата за {00B464}15 {FFFFFF}донат очков"); PlayerInfo[playerid][pDonatemoney2] -= 15; } case 12: { if(PlayerInfo[playerid][pDonateRank] >= 1) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас уже имеется VIP статус (попробуйте повысить его)"); if(PlayerInfo[playerid][pDonatemoney2] PlayerInfo[playerid][pDonateRank] = 1; PlayerInfo[playerid][pDonatemoney2] -= 300; SendClientMessage(playerid, COLOR_WHITE, "Вы купили VIP статус за {00B464}300 {FFFFFF}донат очков"); } case 13: { if(PlayerInfo[playerid][pDonatemoney2] if(PlayerInfo[playerid][pDonateRank] == 0) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас нету VIP статуса"); if(PlayerInfo[playerid][pDonateRank] { PlayerInfo[playerid][pDonateRank]++; SendClientMessage(playerid, COLOR_WHITE, "Вы повысили VIP статус за {00B464}200 {FFFFFF}донат очков"); } } } } else return cmd_donate(playerid, ""); return true; } case 12953: { if(response) { if(!strlen(inputtext)) return format(stringer, sizeof(stringer), "{FFFFFF}Действующий тариф: {ffa500}Бонусный {FFFFFF}(5 к 15 тыс.)\n\nНа счету вашего аккаунта {ffa500}%d {FFFFFF}донат очка(о/ов)\n\nМаксимально доступная выручка с обмена составляет %d $", PlayerInfo[playerid][pDonatemoney2], PlayerInfo[playerid][pDonatemoney2]*5015), ShowPlayerDialog(playerid, 12953, DIALOG_STYLE_INPUT, "DONATE: Конвертер виртуальных средств", stringer, "Продолжить", "Назад"); new moneys; moneys = strval(inputtext); if(PlayerInfo[playerid][pDonatemoney2] if(moneys > 10000 || moneys PlayerInfo[playerid][pBank] += moneys*15000; format(stringer, sizeof(stringer), "Ваш аккаунт успешно пополнен, деньги были переведены в банк"); SendClientMessage(playerid, COLOR_WHITE, stringer); PlayerInfo[playerid][pDonatemoney2] -= moneys; return true; } else return cmd_donate(playerid, ""); CMD:givedonate(playerid, params[]) { if (PlayerInfo[playerid][pAdmin] > 0) { new playa, DonateMoney1, stringer[MAX_STR]; if (sscanf(params, "ud", playa, DonateMoney1)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /givedonate [playerid] [кол-во]"); if (PlayerInfo[playerid][pAdmin] == 12) { SendClientMessageFormatted(playerid, COLOR_YELLOW, "Вы дали игроку %s %d DonatMoney", NamePlayer[playa], DonateMoney1); PlayerInfo[playa][pDonatemoney2] += DonateMoney1; SendClientMessageFormatted(playa, COLOR_REDD, "Администратор %s дал вам: %d DonatMoney", NamePlayer[playerid], DonateMoney1); SendClientMessageFormatted(playa, COLOR_REDD, "Ваш донатный счёт: %d DonatMoney {FFFFFF}(( Используйте /donate ))", PlayerInfo[playa][pDonatemoney2]); format(stringer, 64, "* Admin %s dal %s, %d donat", NamePlayer[playerid], NamePlayer[playa], DonateMoney1); Money(stringer); } } return true; } CMD:adddc(playerid, params[]) { new code1 = 10000 + random(99999); new status1 = 1; new str[MAX_STR]; if (PlayerInfo[playerid][pAdmin] == 12) { if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /adddc [донат-очков]"); format(str, sizeof(str), "INSERT INTO `donate` (`Code`, `Money`, `Status`) VALUES ('%d', '%d', '%d')",code1,strval(params[0]),status1); mysql_function_query(connects, str, false, "",""); format(str, sizeof(str), "Вы успешно создали код: %d (%d донат очков)",code1, strval(params[0])); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "INSERT INTO `donatelogs` (`Text`) VALUES ('%s ADD DONATE CODE: %d (%d)')",NamePlayer[playerid], code1, strval(params[0])); mysql_function_query(connects, str, false, "",""); } return true; } case 3242: { if(response) { if(!strlen(inputtext) || (!IsNumeric(inputtext))) { ShowPlayerDialog(playerid,197,DIALOG_STYLE_INPUT,"DONATE: Активация донат - кода","Введите донат код, который вы получите при оплате и нажмите 'Далее':\n","Далее","Отмена"); return true; } new code = strval(inputtext); new query_mysql[120]; mysql_format(connects, query_mysql,120, "SELECT Money FROM Donate WHERE Code = '%d' AND Status = '1'",code); mysql_function_query(connects, query_mysql, true, "GrandDonate", "dd", playerid,code); return true; } } case 9943: { if(response) { if(PlayerInfo[playerid][pDonatemoney2] if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 9943, DIALOG_STYLE_INPUT, "DONATE: Сменить никнейм", "Напишите новый никнейм в окошко\n\nНапример: Grand_Persona, Vasya_Pupkin\n\nПроверяйте каждый знак, чтобы не были проблемы", "Отправить", "Назад"); if(IsTextInvalid(inputtext)) return ShowPlayerDialog(playerid, 9943, DIALOG_STYLE_INPUT, "DONATE: Сменить никнейм", "Напишите новый никнейм в окошко\n\nНапример: Grand_Persona, Vasya_Pupkin\n\nПроверяйте каждый знак, чтобы не были проблемы", "Отправить", "Назад"); if(strlen(inputtext) 24) return ShowPlayerDialog(playerid, 9943, DIALOG_STYLE_INPUT, "DONATE: Сменить никнейм", "Напишите новый никнейм в окошко\n\nНапример: Grand_Persona, Vasya_Pupkin\n\nПроверяйте каждый знак, чтобы не были проблемы", "Отправить", "Назад"); format(WantNickChange[playerid],MAX_PLAYER_NAME, "%s",inputtext); new QUERY[128]; mysql_format(connects, QUERY,sizeof(QUERY), "SELECT * FROM `Accounts` WHERE `Name` = '%e'", WantNickChange[playerid]); mysql_function_query(connects, QUERY, true, "GrandChangeName", "d", playerid); return true; } else return cmd_donate(playerid, ""); Автор: Sweazy(Roy)
  15. Много я на форуме тут просил дабы мне перевели кмд,с простого командного процессора на zcmd или еще какие нибудь,но недавно наткнулся на урок,из которого я хоть чуть-чуть,но все же понял,как это делается,и хочу с вами им поделиться..дабы вы не задавали таких же глупых вопросов как я. ПРИСТУПИМ : (!)Команды построены на проверках. Обучимся на одной из готовых команд,выдачи жизней CMD:sethp(playerid, params[]) { new str[24]; if(sscanf(params,"ui",params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE,"Используйте: /sethp [id] [кол-во жизней]"); if(params[1] < 0 || params[1] > 100) return SendClientMessage(playerid, COLOR_GREY, "Нельзя дать менее 0 и более 100 жизней."); SetHealth(params[0],params[1]); format(str,sizeof(str), "%s установил вам жизней %d",PlayerInfo[params[0]][pName],params[1]); SendClientMessage(params[0],COLOR_WHITE, str); return true; Разберем код подробней... if(sscanf(params,"ui",params[0],params[1])) /* Это даем значения, если u - ид/имя игрока если i - число, и даем им значение params[0], params[1] все по порядку*/ SetHealth(params[0],params[1]); /*Опять же, params[0] - это ид игрока или имя которое мы ввели в команде, а params[1] это наше числовое значение i которое мы ввели когда прописывали команду.*/ if(params[1] < 0 || params[1] > 100) /*Это действие выводится когда вы ввели значение i - то есть params[1] меньше нуля либо больше 100*/ format(str,sizeof(str), "%s установил вам жизней %d",PlayerInfo[playerid][pName],params[1]); /* PlayerInfo[playerid][pName] где playerid - ид или имя игрока который прописал команду, params[1] - это опять же наше значение i SendClientMessage(params[0],COLOR_WHITE, str); /* Функция показывает сообщение в чат, а кому??? опять же params[0] ( то есть кому дали вы жизни - u ) Ну вот и все,благодаря данному мануалу я научился на половину переводить команды,и думаю вы тоже научитесь,удачи вам в ваших начинаниях Автор урока : DmX (Siman aka DmX) И еще если указывайте значение "S" то указывайте его вот так "S[24]"то есть добавляйте стринг,так как у многих новичков бывают проблемы,потом сервер выдает варнинги.. Всем спасибо,за то что прочитали данный мануал.. Вопросы задавайте попытаюсь ответить..
  16. Защита от пустых сообщений в конец мода bool:emptyMessage(const string[]) { for(new i; string[i] != 0x0; i++) { switch(string[i]) { case 0x20: continue; default: return false; } } return true; } в OnPlayerText if(emptyMessage(text)) return SendClientMessage(playerid,-1,"[FAIL]: Пустое сообщение!") & 0; return true; Автор: MotoSport
  17. Привет! Предположим, что подключился игрок с ником (именем) "Player", тогда ему будет написано: "Добро пожаловать на сервер" В public OnPlayerConnect(playerid) new PlayerName[30], str[256]; GetPlayerName(playerid, PlayerName, 30); format(str, 256, "Добро пожаловать %s на сервер", PlayerName); SendClientMessage(playerid, 0xFF9900AA, str); Автор: Неизвестно
  18. Хелоу ребята! Держите работу шахтёра для начала ко всем new добавляем new SahtaJob; //пикап устройства new Rabota[MAX_PLAYERS]; //проверка на работу new ZolotoAll[MAX_PLAYERS]; //всего золота собрано new PlayerOldSkin[MAX_PLAYERS]; //запишет ваш скин старый в public OnGameModeInit() добавляем SahtaJob = CreatePickup(1275,23,2750.3560,-2209.7473,17.9163); в public OnPlayerConnect(playerid) добавим Rabota[playerid] = 0; ZolotoAll[playerid] = 0; в public OnPlayerEnterCheckpoint(playerid) действие на чекпойнт if(GetPVarInt(playerid,"Nesti") == 1) { DisablePlayerCheckpoint(playerid); RemovePlayerAttachedObject(playerid,4); ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 1); SendClientMessage(playerid,0xFFFFFFFF,"Вы донесли золото на склад"); SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000); SetPVarInt(playerid,"Nesti",0); SetPVarInt(playerid,"Proverka",0); return true; } в public OnPlayerPickUpPickup(playerid, pickupid) создадим действие на пикап if(pickupid == SahtaJob) { if(Rabota[playerid] == 0) { ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Устройство Шахта","Шахта - вы хотите начать работать Шахтёра?\nОплата за 1 kg добытой руды составляет 10$ \n\nВы действительно хотите устроиться на работу шахтёра?","Далее", "Выход"); return true; } else if(Rabota[playerid] == 1) { format(string, sizeof(string),"Шахта - вы хотите уволиться с работы Шахтёра?\nШахта выплатить вам %d$ за добытое золото\n\nВы действительно хотите уволиться с работы шахтёра?",ZolotoAll[playerid]*10); ShowPlayerDialog(playerid,14,DIALOG_STYLE_MSGBOX,"Увольнение Шахта",string,"Далее", "Выход"); return true; } } в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) сделаем вывод диалога на экран if(dialogid== 14) // Шахта { if(response) { if(Rabota[playerid] == 0) { Rabota[playerid] = 1; ZolotoAll[playerid] = 0; PlayerOldSkin[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid, 260); SetPlayerAttachedObject(playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000); SendClientMessage(playerid,0xFFFFFFFF,"Вы успешно устроились на работу шахтёра!"); SendClientMessage(playerid,0xFFFFFFFF,"Пройдите в шахту для начала добычи золота [золото находится на камнях в шахте]!"); return true; } else { DisablePlayerCheckpoint(playerid); ApplyAnimation(playerid,"PED", "IDLE_tired", 4.1, 0, 1, 1, 0, 1); SetPlayerSkin(playerid,PlayerOldSkin[playerid]); TextDrawHideForPlayer(playerid,WoodDraw[playerid]); SendClientMessage(playerid,COLOR_WHITE,"{00FF00}Вы успешно уволились с работы шахтёра."); format(string, sizeof(string),"{00FF00}Вы добыли {408080}%d kg{00FF00} руды и заработали %d$",ZolotoAll[playerid],ZolotoAll[playerid]*10); SendClientMessage(playerid,COLOR_WHITE,string); GiveMoney(playerid,ZolotoAll[playerid]*10); ZolotoAll[playerid] = 0; Rabota[playerid] = 0; SetPVarInt(playerid,"Proverka",0); SetPVarInt(playerid,"Nesti",0); RemovePlayerAttachedObject(playerid,4); RemovePlayerAttachedObject(playerid,3); return true; } } } в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) создадим действие на кнопку ALT чтобы начал добывать золото if(newkeys == 1024) { if(MestaSahta(playerid)) { if(Rabota[playerid] == 1) { if(GetPVarInt(playerid,"Proverka") > 0)return(playerid,0xACFF59FF,"Вы уже добыли руду"); SendClientMessage(playerid,0xACFF59FF,"- Вы начали добывать золото"); ApplyAnimation(playerid, "SWORD", "sword_4", 4.0, 1, 0, 0, 0, 0); SetPVarInt(playerid,"Proverka",1); SetTimerEx("GiveZoloto", 3000, false, "i", playerid); return true; } } } и в конец мода добавим таймер и места для добычи золота forward GiveZoloto(playerid); public GiveZoloto(playerid) { ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 1, 1); RemovePlayerAttachedObject(playerid, 3); SendClientMessage(playerid,0xFFFFFFFF,"Отнесите золото на склад!"); SetPlayerAttachedObject(playerid, 4, 2936, 1, 0.184699, 0.426247, 0.000000, 259.531341, 80.949592, 0.000000, 0.476124, 0.468181, 0.470769); SetPlayerCheckpoint(playerid,2756.5317,-2211.5769,17.9146,3.0); SetPlayerChatBubble(playerid,"{00FF00}+6",0x00FF00FF,30.0,8000); ZolotoAll[playerid] += 6; SetPVarInt(playerid,"Nesti",1); return true; } stock MestaSahta(playerid) { if(IsPlayerInRangeOfPoint(playerid,1.8,2758.6245,-2227.7559,17.9254) || IsPlayerInRangeOfPoint(playerid,1.8,2756.8035,-2230.5139,17.9284) || IsPlayerInRangeOfPoint(playerid,1.8,2759.0605,-2217.2356,17.9175)) {return true;} return false; } Вот и всё вроде 1. Можно добавлять больше мест для золота 2. Ид диалогов замените на свои и координаты тоже 3. Маппинга от работы у меня нету увы для теста создал возле спавна на складе Автор: Неизвестно Переделывал : всю работу переделывал Basis так как были замечены баги и оплошности
  19. Доброе утро друзья! Выкладываю для вас TextDraw магазина - иконки замените на свои new PlayerText:Shop[51][MAX_PLAYERS]; Shop[0][playerid] = CreatePlayerTextDraw(playerid,580.000000, 150.000000, "_"); PlayerTextDrawBackgroundColor(playerid,Shop[0][playerid], 255); PlayerTextDrawFont(playerid,Shop[0][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[0][playerid], 0.500000, 27.099996); PlayerTextDrawColor(playerid,Shop[0][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[0][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[0][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[0][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[0][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[0][playerid], -424540161); PlayerTextDrawTextSize(playerid,Shop[0][playerid], 52.000000, 51.000000); PlayerTextDrawSetSelectable(playerid,Shop[0][playerid], 0); Shop[1][playerid] = CreatePlayerTextDraw(playerid,125.000000, 149.000000, "shop_background"); PlayerTextDrawBackgroundColor(playerid,Shop[1][playerid], 0); PlayerTextDrawFont(playerid,Shop[1][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[1][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[1][playerid], 983295); PlayerTextDrawSetOutline(playerid,Shop[1][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[1][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[1][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[1][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[1][playerid], 451.000000, 246.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[1][playerid], 19376); PlayerTextDrawSetPreviewRot(playerid,Shop[1][playerid], 0.000000, 0.000000, 90.000000, 0.400000); PlayerTextDrawSetSelectable(playerid,Shop[1][playerid], 0); Shop[2][playerid] = CreatePlayerTextDraw(playerid,56.000000, 149.000000, "category_1_skins"),PlayerTextDrawSetPreviewRot(playerid, Shop[2][playerid], -10.000000, 0.000000, 0.000000, 1.000000); Shop[3][playerid] = CreatePlayerTextDraw(playerid,56.000000, 190.000000, "category_2_head"),PlayerTextDrawSetPreviewRot(playerid, Shop[3][playerid],-10.000000, 0.000000, 130.000000, 1.000000); Shop[4][playerid] = CreatePlayerTextDraw(playerid,56.000000, 231.000000, "category_3_glass"),PlayerTextDrawSetPreviewRot(playerid, Shop[4][playerid], -15.000000, 0.000000, 120.000000, 1.000000); Shop[5][playerid] = CreatePlayerTextDraw(playerid,56.000000, 272.000000, "category_4_car"),PlayerTextDrawSetPreviewRot(playerid, Shop[5][playerid], -15.000000, 0.000000, 40.000000, 1.000000); Shop[6][playerid] = CreatePlayerTextDraw(playerid,56.000000, 313.000000, "category_5_features(vip,double score etc)"),PlayerTextDrawSetPreviewRot(playerid, Shop[6][playerid], -90.000000, 180.000000, 0.000000, 1.000000); Shop[7][playerid] = CreatePlayerTextDraw(playerid,56.000000, 354.000000, "category_6_mask"),PlayerTextDrawSetPreviewRot(playerid, Shop[7][playerid], 0.000000, 0.000000, 50.000000, 1.000000); for(new i = 2,models[6] = {299,18963,19011,411,19792,19038}; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 68032255); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.050000, 1.099900); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 68.000000, 42.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[i][playerid], models[i-2]); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 1); } Shop[8][playerid] = CreatePlayerTextDraw(playerid,187.000000, 173.000000, "_"); Shop[9][playerid] = CreatePlayerTextDraw(playerid,296.000000, 173.000000, "_"); Shop[10][playerid] = CreatePlayerTextDraw(playerid,405.000000, 173.000000, "_"); Shop[11][playerid] = CreatePlayerTextDraw(playerid,514.000000, 173.000000, "_"); Shop[12][playerid] = CreatePlayerTextDraw(playerid,187.000000, 276.000000, "_"); Shop[13][playerid] = CreatePlayerTextDraw(playerid,296.000000, 276.000000, "_"); Shop[14][playerid] = CreatePlayerTextDraw(playerid,405.000000, 276.000000, "_"); Shop[15][playerid] = CreatePlayerTextDraw(playerid,514.000000, 276.000000, "_"); for(new i = 8; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 255); PlayerTextDrawFont(playerid,Shop[i][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 10.400005); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 623059967); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 136.000000, 100.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[16][playerid] = CreatePlayerTextDraw(playerid,137.000000, 173.000000, "item_1"); Shop[17][playerid] = CreatePlayerTextDraw(playerid,246.000000, 173.000000, "item_2"); Shop[18][playerid] = CreatePlayerTextDraw(playerid,355.000000, 173.000000, "item_3"); Shop[19][playerid] = CreatePlayerTextDraw(playerid,464.000000, 173.000000, "item_4"); Shop[20][playerid] = CreatePlayerTextDraw(playerid,137.000000, 276.000000, "item_5"); Shop[21][playerid] = CreatePlayerTextDraw(playerid,246.000000, 276.000000, "item_6"); Shop[22][playerid] = CreatePlayerTextDraw(playerid,355.000000, 276.000000, "item_7"); Shop[23][playerid] = CreatePlayerTextDraw(playerid,464.000000, 276.000000, "item_8"); for(new i = 16; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 235802623); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 255); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 100.000000, 80.000000); PlayerTextDrawSetPreviewModel(playerid,Shop[i][playerid], 18631);//default: question mark PlayerTextDrawSetPreviewRot(playerid,Shop[i][playerid], -16.000000, 0.000000, -55.000000, 1.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 1); } Shop[24][playerid] = CreatePlayerTextDraw(playerid,185.000000, 176.000000, "item 1");//shark Shop[25][playerid] = CreatePlayerTextDraw(playerid,294.000000, 176.000000, "item 2");//dolphin Shop[26][playerid] = CreatePlayerTextDraw(playerid,403.000000, 176.000000, "item 3");//sword Shop[27][playerid] = CreatePlayerTextDraw(playerid,513.000000, 176.000000, "item 4");//fan Shop[28][playerid] = CreatePlayerTextDraw(playerid,185.000000, 278.000000, "item 5");//skate Shop[29][playerid] = CreatePlayerTextDraw(playerid,293.000000, 278.000000, "item 6");//parrot Shop[30][playerid] = CreatePlayerTextDraw(playerid,406.000000, 278.000000, "item 7");//police shield Shop[31][playerid] = CreatePlayerTextDraw(playerid,513.000000, 278.000000, "item 8");//vest for(new i = 24; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 255); PlayerTextDrawFont(playerid,Shop[i][playerid], 2); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.300000, 1.899999); PlayerTextDrawColor(playerid,Shop[i][playerid], -1462501377); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 0); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[32][playerid] = CreatePlayerTextDraw(playerid,129.000000, 253.000000, "cost_1"); Shop[33][playerid] = CreatePlayerTextDraw(playerid,238.000000, 253.000000, "cost_2"); Shop[34][playerid] = CreatePlayerTextDraw(playerid,348.000000, 253.000000, "cost_3"); Shop[35][playerid] = CreatePlayerTextDraw(playerid,458.000000, 253.000000, "cost_4"); Shop[36][playerid] = CreatePlayerTextDraw(playerid,129.000000, 356.000000, "cost_5"); Shop[37][playerid] = CreatePlayerTextDraw(playerid,238.000000, 356.000000, "cost_6"); Shop[38][playerid] = CreatePlayerTextDraw(playerid,348.000000, 356.000000, "cost_7"); Shop[39][playerid] = CreatePlayerTextDraw(playerid,458.000000, 356.000000, "cost_8"); for(new i = 32; i { PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 0); PlayerTextDrawFont(playerid,Shop[i][playerid], 5); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.500000, 1.000000); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[i][playerid], 1); PlayerTextDrawUseBox(playerid,Shop[i][playerid], 1); PlayerTextDrawBoxColor(playerid,Shop[i][playerid], 0); PlayerTextDrawTextSize(playerid,Shop[i][playerid], 33.000000, 15.000000); PlayerTextDrawSetPreviewModel(playerid, Shop[i][playerid], 1274); PlayerTextDrawSetPreviewRot(playerid, Shop[i][playerid], 0.000000, 0.000000, 0.000000, 1.000000); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[40][playerid] = CreatePlayerTextDraw(playerid,181.000000, 254.000000, "2,000");//item cost 1 Shop[41][playerid] = CreatePlayerTextDraw(playerid,289.000000, 254.000000, "4,650");//item cost 2 Shop[42][playerid] = CreatePlayerTextDraw(playerid,400.000000, 254.000000, "21,200");//item cost 3 Shop[43][playerid] = CreatePlayerTextDraw(playerid,510.000000, 254.000000, "14,390");//item cost 4 Shop[44][playerid] = CreatePlayerTextDraw(playerid,181.000000, 357.000000, "7,100");//item cost 5 Shop[45][playerid] = CreatePlayerTextDraw(playerid,291.000000, 357.000000, "8,400");//item cost 6 Shop[46][playerid] = CreatePlayerTextDraw(playerid,399.000000, 357.000000, "16,650");//item cost 7 Shop[47][playerid] = CreatePlayerTextDraw(playerid,510.000000, 357.000000, "19,090");//item cost 8 for(new i = 40; i { PlayerTextDrawAlignment(playerid,Shop[i][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[i][playerid], 102); PlayerTextDrawFont(playerid,Shop[i][playerid], 3); PlayerTextDrawLetterSize(playerid,Shop[i][playerid], 0.449999, 1.399999); PlayerTextDrawColor(playerid,Shop[i][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[i][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[i][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[i][playerid], 0); } Shop[48][playerid] = CreatePlayerTextDraw(playerid,300.000000, 375.000000, "~ PlayerTextDrawBackgroundColor(playerid,Shop[48][playerid], 255); PlayerTextDrawFont(playerid,Shop[48][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[48][playerid], 0.559998, 1.700000); PlayerTextDrawColor(playerid,Shop[48][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[48][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[48][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[48][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[48][playerid], 1); Shop[49][playerid] = CreatePlayerTextDraw(playerid,369.000000, 375.000000, "~>~"); PlayerTextDrawBackgroundColor(playerid,Shop[49][playerid], 255); PlayerTextDrawFont(playerid,Shop[49][playerid], 1); PlayerTextDrawLetterSize(playerid,Shop[49][playerid], 0.559998, 1.700000); PlayerTextDrawColor(playerid,Shop[49][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[49][playerid], 0); PlayerTextDrawSetProportional(playerid,Shop[49][playerid], 1); PlayerTextDrawSetShadow(playerid,Shop[49][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[49][playerid], 1); Shop[50][playerid] = CreatePlayerTextDraw(playerid,342.000000, 377.000000, "1/7"); PlayerTextDrawAlignment(playerid,Shop[50][playerid], 2); PlayerTextDrawBackgroundColor(playerid,Shop[50][playerid], 255); PlayerTextDrawFont(playerid,Shop[50][playerid], 2); PlayerTextDrawLetterSize(playerid,Shop[50][playerid], 0.469999, 1.399999); PlayerTextDrawColor(playerid,Shop[50][playerid], -1); PlayerTextDrawSetOutline(playerid,Shop[50][playerid], 1); PlayerTextDrawSetProportional(playerid,Shop[50][playerid], 1); PlayerTextDrawSetSelectable(playerid,Shop[50][playerid], 0); Скриншёт Посмотреть изображение Автор: ziponz
  20. Привет! Команда для того что бы администратор мог забрать паспорт у игрока Ко всем #define: #define COLOR_GRAD1 0xB4B5B7FF #define COLOR_WHITE 0xFFFFFFAA #define COLOR_GREY 0xAFAFAFAA Вставляем в public OnPlayerCommandText: if (strcmp(cmd, "/clearpass", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 6) //Делаем проверку на администратора { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "Используйте: /clearpass [ID]"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { PlayerInfo[giveplayerid][pPasport] = 0; SendClientMessage(playerid,COLOR_WHITE," Теперь у этого игрока нет паспорта"); SendClientMessage(giveplayerid,COLOR_WHITE," Администратор очистил твой паспорт"); } } else { SendClientMessage(playerid, COLOR_GREY, "Нет такого игрока"); } } else { SendClientMessage(playerid, COLOR_GREY, "Вы не администратор сервера!"); } } return 1; } Готово! Автор: Monolit
  21. Здравствуйте! Команда для парковки автомобиля Команда чтобы припарковать авто самим игроком: if(strcmp(cmd, "/park", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в авто"); new cars = GetPlayerVehicleID(playerid); if(GetRealID(cars) == -1) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в своём авто"); if(!strcmp(CarInfo[GetRealID(cars)][cOwner],Name(playerid),false)||!strcmp(CarInfo[GetRealID(cars)][cOwnerm],Name(playerid),false)) { CarInfo[GetRealID(cars)][cFrontBullbars] = 0; GetVehiclePos(cars, CarInfo[GetRealID(cars)][cPx],CarInfo[GetRealID(cars)][cPy],CarInfo[GetRealID(cars)][cPz]); GetVehicleZAngle(cars, CarInfo[GetRealID(cars)][cPa]); SendClientMessage(playerid, -1, "Теперь ваш автомобиль будет припаркован в этом месте"); SaveCar(GetRealID(cars)); return 1; } else return SendClientMessage(playerid, COLOR_GRAD2, "Это не ваш транспорт"); } Команда чтобы припарковать авто Администратором: if(strcmp(cmd, "/apark", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в авто"); new cars = GetPlayerVehicleID(playerid); if(ServerClosed==1){SendClientMessage(playerid, COLOR_GRAD2, "Кмд временно не работает");return 1;} if(GetRealID(cars) == -1) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в своём авто"); if(PlayerInfo[playerid][pAdmin] >= 3) { GetVehiclePos(cars, CarInfo[GetRealID(cars)][cPx],CarInfo[GetRealID(cars)][cPy],CarInfo[GetRealID(cars)][cPz]); GetVehicleZAngle(cars, CarInfo[GetRealID(cars)][cPa]); SaveCar(GetRealID(cars)); SendClientMessage(playerid, COLOR_GRAD2, "Теперь этот автомобиль будет припаркован в этом месте"); return 1; } Готово! Автор: Kostyaev
  22. Привет! Команда для подачи обьявления Сама команда: if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, "Вы не АВТОРИЗИРОВАНЫ!"); return 1; } if(PlayerInfo[playerid][pMuteTime] > 0) { SendClientMessage(playerid,COLOR_GREY," Тебя заткнули,наверно много говорил!"); return 1; } if(PlayerInfo[playerid][pJailed] > 0) { SendClientMessage(playerid, COLOR_GRAD2, "Вы заключены в тюрьму. Вы сейчас не можете давать объявления."); return 1; } if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "Вы не имеете прав давать рекламу."); return 1; } if(PlayerInfo[playerid][pLevel] { SendClientLangMessage(0, playerid, TEAM_CYAN_COLOR, "Рекламу можно давать минимум со 2-го уровня."); return 1; } if(adlimit[playerid] > 0) { SendClientLangMessage(0, playerid, TEAM_CYAN_COLOR, "Ваш лимит исчерпан. Обьявление можно давать не более одного раза в час."); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx { idx++; } new offset = idx; new result[64]; while ((idx { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; new is1=0; new r=0; while(strlen(cmdtext[is1])) { if('0' { new is2=is1+1; new p=0; while(p==0) { if('0' else { strmid(strR[r],cmdtext,is1,is2,255); if(strval(strR[r]) is1=is2; p=1; } } } is1++; } if(r>=4) { new STRname[255]; GetPlayerName(playerid,STRname,255); format(string, sizeof(string), "Подозрение на рекламу %s (ID:%d)",sendername,playerid); ABroadCast(COLOR_LIGHTRED,string,1); for(new z=0;z { new pr2; while((pr2=strfind(cmdtext,strR[z],true))!=-1) for(new i=pr2,j=pr2+strlen(strR[z]);i } return 1; } if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: (/ad)vertise [advert text]"); return 1; } new payout = idx * 2; if(GetPlayerMoney(playerid) { format(string, sizeof(string), "* Вы использовали %d знаков, ценой %d руб., но у вас нет денег чтобы заплатить!", offset, payout); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; } ServerGivePlayerMoney(playerid, - payout); SBizzInfo[7][sbTill] += payout; ExtortionSBiz(7, payout); format(string, sizeof(string), "** %s | Телефон: %d |**", result,PlayerInfo[playerid][pPnumber]); OOCNews(TEAM_GROVE_COLOR,string); adlimit[playerid] = 1; format(string, sizeof(string), "~r~Paid %d PY—.~n~~w~Message contained: %d Characters", payout, idx); GameTextForPlayer(playerid, string, 5000, 5); format(string, sizeof(string), "Объявление дал: %s (ID:%d)",sendername,playerid); ABroadCast(COLOR_LIGHTRED,string,1); } return 1; } Переменная new adlimit[MAX_PLAYERS]; Готово Автор: SHAMAN
  23. Привет пипл! Описание: В общем эта команда помогает админам и игрокам. Админ вводит /atp, он включает систему телепортации, игроки вводят /tpa id админа и они телепортируются к нему (соответственно если включена система у этого админа). Данные команды очень помогают при проведениях мероприятий. Создаём переменную: new atp[MAX_PLAYERS]; Далее добавляем в OnPlayerCommandText if(strcmp(cmd, "/tpa", true) == 0) { new Float:px, Float:py, Float:pz; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите /tpa [id]"); giveplayerid = strval(tmp); if(atp[giveplayerid] == 1) { SendClientMessage(playerid, COLOR_GREEN, "Вы успешно телепортировались."); GetPlayerPos(giveplayerid, px, py, pz); SetPlayerPosEx(playerid, px+1, py, pz); } else SendClientMessage(playerid, COLOR_LIGHTRED, "Данный игрок не включил систему телепортации."); } if(strcmp(cmd, "/atp", true) == 0) { new name[24]; GetPlayerName(playerid, name, 24); if(PlayerInfo[playerid][pAdmin] == 0) return true; if(atp[playerid] == 0) { format(string, 255, "Администратор %s[%d] включил систему телепортации. Введите [/tpa %d], чтобы телепортироваться.", name, playerid, playerid); SendClientMessageToAll(COLOR_LIGHTRED, string); atp[playerid] = 1; } else { format(string, 255, "Администратор %s[%d] выключил систему телепортации.", name, playerid); SendClientMessageToAll(COLOR_LIGHTRED, string); atp[playerid] = 0; } } Автор неизвестен!
  24. Здравствуйте! Команда показывает модераторов которые в онлайне Сама команда if (strcmp(cmd,"/moderators",true)==0) { if(IsPlayerConnected(playerid)) { SendClientMessage(playerid, COLOR_YELLOW, "Модераторы Онлайн"); for(new i = 0; i { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pModerators] >= 1 && PlayerInfo[i][pModerators] { new admtext[64]; switch(PlayerInfo[i][pModerators]) { case 6:admtext = "6 LvL Модератор"; case 5:admtext = "5 LVL Модератор"; case 4:admtext = "Гл.Модератор"; case 3:admtext = "Модератор"; case 2:admtext = "Ст.Модератор"; case 1:admtext = "Мл.Модератор"; default:admtext = "Не известный Модератор"; } GetPlayerName(i, sendername, sizeof(sendername)); if(HelperDuty[i] == 0) { strdel(string, 0, sizeof(string)); format(string, 200, "{32CD32}%s: %s ID %d\n", admtext, sendername, i); strcat(str,string); } else { strdel(string, 0, sizeof(string)); format(string, 200, "{32CD32}%s: %s (Задавайте вопросы) ID |%d|\n", admtext, sendername, i); strcat(str,string); } } } } } return true; } Готово! Автор: Artyom_Kurzov
  25. Здравствуйте! Эта команда что то типа Мегофона Сама команда if(strcmp(cmd, "/stop", true) == 0 || strcmp(cmd, "/st", true) == 0) { if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); if(gTeam[playerid] == 2 || IsACop(playerid)) { if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1) { format(string, sizeof(string), "[Сотрудник ГИБДД %s:**(((Прижмитесь к обочине))) Сохраняйте спокойствие- проверка документов]", sendername); ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); } else if(PlayerInfo[playerid][pMember] == 20||PlayerInfo[playerid][pLeader] == 20) { format(string, sizeof(string), "[Сотрудник ППС %s:**(((Прижмитесь к обочине))) Сохраняйте спокойствие- проверка документов]", sendername); ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); } printf("%s", string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Вы не ГИБДД/ППС !"); return 1; } } } Автор: Lacoste
×

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

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