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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

Найдено: 1,434 результата

  1. Здравствуйте уважаемые пользователи GSG! Сегодня я решил вырезать команду на ПТС(Паспорт Транспортного средства) Для новичков думаю самое то! Вот сама команда. if(strcmp(cmd, "/tehpass", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "[Подсказка]: /tehpass [id]"); giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if (ProxDetectorS(8.0, playerid, giveplayerid)) { new str[128],sctring[2000]; new carid = GetPlayerVehicleID(playerid); format(str,sizeof(str),"{33CCFF}Зарегестрировано на: {ffffff}%s\n",CarInfo[GetRealID(carid)][cOwner]); strcat(sctring,str); format(str,sizeof(str),"{33CCFF}Марка транспорта: {ffffff}%s\n",VehiclesName[CarInfo[GetRealID(carid)][cMod]-400]); strcat(sctring,str); format(str,sizeof(str),"{33CCFF}Гос. рег. знак: {ffffff}%s\n",CarInfo[GetRealID(carid)][cNumber]); strcat(sctring,str); new lol[256]; format(lol,sizeof(lol),"[ПТС] Паспорт транспортного средства"); ShowPlayerDialog(giveplayerid,4567,DIALOG_STYLE_MSGBOX,lol,sctring,"Ок","Отмена"); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "Игрок %s: Показал свой Тех.Паспорт от Авто.", sendername); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string,sizeof(string), "Показал свой Тех.Паспорт от Авто"); SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000); return true; } } } } P.S.Взято из мода GreenTech 7.5.2 Но пришлось переделывать под свой мод.Так как там были другие значения. Автор неизвестен Авторы мода Red_Devils, Vlad_Dredd, мапинг: Artem_Stetham
  2. И так многим интересно как сделать так чтобы где игрок вышел из игры,там же при входе он и появится. На эту тему я решил поискать немного информации,нашёл не плохой урок,от Extazy. Смотрите. И так первое что вам нужно добавить 3 переменных которые будут записываться в аккаунт пользователя. (!)Если у вас нет регистрации,ничего не выйдет! (!)Этот мануал написан для ГФ модов,но оптимизировать можно под что угодно,главное чтобы была регистрация. И так находим конструкцию enum pInfo в своём моде,и в конец добавляем Float:pCordX, Float:pCordY, Float:pCordZ, Далее в OnPlayerRegister добавляем строку format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordX]);fwrite(hFile, var); format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordY]);fwrite(hFile, var); format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordZ]);fwrite(hFile, var); Поясняю: Тут мы делаем чтобы при создании аккаунта в него добавились нужные нам переменные. Далее в OnPlayerUpdate добавляем аналогичный код format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordX]);fwrite(hFile, var); format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordY]);fwrite(hFile, var); format(var, 32, "CordinataX=%.1f\n",PlayerInfo[playerid][pCordZ]);fwrite(hFile, var); Поясняю: Тут мы делаем чтобы переменные записывались в аккаунт И в OnPlayerLogin добавляем if( strcmp( key , "CordinataX" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCordX] = strval( val ); } if( strcmp( key , "CordinataY" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCordY] = strval( val ); } if( strcmp( key , "CordinataZ" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCordZ] = strval( val ); } Поясняю: Тут мы извлекаем значение переменных из файла Далее в OnGameModeInit добавляем бесконечный таймер,который будет получать позиции игроков SetTimer("SavePlayerPos",1000,1); Далее создадим сам паблик public SavePlayerPos() { new Float:x,Float:y,Float:z; //используем цикл for(new i = 0;i , MAX_PLAYERS;i++) { GetPlayerPos(i,px,py,pz);//Получаем позицию игрока PlayerInfo[i][pCordX] = px;//записываем x PlayerInfo[i][pCordY] = py;//записываем y PlayerInfo[i][pCordZ] = pz;//записываем z } } И не забудьте добавить форвард,в начало кода Ну и наконец при спавне игрока,устанавливаем ему эти координаты. Это ставим в OnPlayerSpawn forward SavePlayerPos(); x = PlayerInfo[i][pCordX]; y = PlayerInfo[i][pCordY]; z = PlayerInfo[i][pCordZ]; SetPlayerPos(playerid, x,y,z);//Установим координаты из переменной SetPlayerFacingAngle(playerid, 360.0); В принципе можно убрать все спавны фракциям,и добавить условия только зарегистрирован или нет,и если нет то ставить другую позицию. Но это уже нюансы. Автор: Extazy.
  3. Denis_Filimonov

    База отдыха

    Доброго времени суток! Хочу представить вам свою первую работу - Базу отдыха на озере в селе Роговичи
  4. PROMO_4ka!™

    Смайлы, действия

    Всем привет. Выкладываю замену смайликов на действия. И так, начнем Ко всем new new string[32+MAX_PLAYER_NAME]; new sendername[MAX_PLAYER_NAME]; В public OnPlayerText(playerid, text[]) добавляем if(!strcmp(text,"xD",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s смеётся", sendername); ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,"xDD",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s ржет", sendername); ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,"xDDD",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s валяется от смеха", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0);//анимация смеха ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,"(",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s грустит", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,"чВ",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s валяется от смеха", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0);//анимация смеха ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,")",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s улыбается", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,":D",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s хохочет во весь голос", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0);//анимация смеха ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } if(!strcmp(text,"xD",true))//команду можно поменять как захочется { GetPlayerName(playerid,sendername,sizeof(sendername)); format(string, sizeof(string), "%s хохочет во весь голос", sendername);// вы можете изменять как вам захочется, тоись %s смеется или как либо ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0);//анимация смеха ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 0; } На этом все, думая вещь полезна! Автор: Hawkins
  5. #Kot

    Измененный мост.

    Решил изменить мост,ну вообщем делать было не чего,так вот. Вот этот мост удалим. RemoveBuildingForPlayer(playerid, 2166, 2747.3701, -1261.9301, 21.5950, 0.25); RemoveBuildingForPlayer(playerid, 2167, 2747.3701, -1261.9301, 21.5950, 0.25); Вот этот вставим.
  6. Всем привет. Выкладываю урок по созданию ворот, которые будут открываться по кнопке. Для этого используется функция CreateObject Я для примера возьму ворота в Доках: CreateObject(969, 2720.3772,-2409.7523,12.6,0, 0.0000, 90);//Закрытые ворота CreateObject(969, 2720.3772,-2508.3069,12.6,0, 0.0000, 90);//Открытые ворота После этого вам нужно создать переменную., которая будет хранить в себе порядковый ID ворот. Ко всем new new gate1; Теперь создадим объект ворот на сервере В public OnGameModeInit засуньте строчку с функцией CreateObject gate1 = CreateObject(ид_объекта, x,y,z, поворот_x, поворот_y, поворот_z);// Укажите ваши данные о ЗАКРЫТЫХ воротаx Для простого примера я создам ворота в доках (координаты открытых и закрытых ворот смотрите выше) public OnGameModeInit() { gate1 = CreateObject(969, 2720.3772,-2409.7523,12.6,0, 0.0000, 90);//Если у вас есть этот public то просто вставте эту строчку с созданием объекта return 1; } Ворота созданы, но теперь их надо заставить двигаться в public OnPlayerCommandText if(!strcmp(cmdtext, "/opengate", true)) { if(IsPlayerInRangeOfPoint(playerid, 10, 2720.3772,-2409.7523,12.6))// Укажите координаты закрытых ворот, 10 - это радиус, где будет действовать открытие ворот { MoveDynamicObject(gate1,2720.3772, -2401.2523, 12.6, 2.0);//Двигаем ворота на позицию открытых ворот SetTimer("CloseGate1", 7000, false);//Создадим таймер что ворота закрылись автоматически } } Теперь создадим public чтоб ворота закрылись самостоятельно Ко всем foward forward CloseGate1(); В конец мода public CloseGate1() { MoveDynamicObject(gate1, 2720.3772,-2409.7523,12.6, 2.0);//Двигаем ворота на позицию закрытых ворот return 1; } Ворота созданы и вы теперь можете их открыть командой /opengate Теперь делаем открытие ворот кнопкой. В public OnPlayerKeyStateChange if(newkeys & KEY_WALK) // На кнопку АЛЬТ (alt) { if(IsPlayerInRangeOfPoint(playerid, 10, 2720.3772,-2409.7523,12.6))// Укажите координаты закрытых ворот, 10 - это радиус, где будет действовать открытие ворот { MoveDynamicObject(gate1,2720.3772, -2401.2523, 12.6, 2.0);//Двигаем ворота на позицию открытых ворот SetTimer("CloseGate1", 7000, false);//Создадим таймер что ворота закрылись автоматически } } На этом урок окончен. Всем спасибо за внимание! Помогал мне (автор): valuch
  7. Здравствуйте хочу представить вам мою работу.Простенький урок,думаю он пригодиться новичку. И так добавим ко всем forward forward Reklama(); Добавим в public OnGameModeInit() SetTimer("Reklama",90000,1); // Это время,можете заменить на свое. И создаем паблик. public Reklama() { SendClientMessageToAll(0x66ff00AA, "Лучший форум GSGAMES.RU/forum"); SendClientMessageToAll(0x66ff00AA, "Наш сайт GSGAMES.RU"); SendClientMessageToAll(0x66ff00AA, "Ждем вас!"); }
  8. #Kot

    Мини район,в Г.Арзамас

    Здравствуйте,хочу представить мою работу.Работа я бы сказал не так уж прям отличная ну для кого то пойдет.
  9. Для того , чтобы "РП" чат работал , нам потребуется: Руки и паблик "OnPlayerText" В OnPlayerText вставляем следующее: new string[256]; new sendername[MAX_PLAYER_NAME]; GetPlayerName(playerid, sendername, sizeof(sendername)); format(string,sizeof string,"%s говорит: %s",sendername,text); new Float:xpos,Float:ypos,Float:zpos; GetPlayerPos(playerid,xpos,ypos,zpos); for(new i=0;i<MAX_PLAYERS;i++){ if(IsPlayerInRangeOfPoint(i,35,xpos,ypos,zpos)) SendClientMessage(i,0xFFFFFFFF,string); //на расстоянии "35" ваш текст будет видно , а также отсылаемые сообщения белого цвета return false;
  10. #GiFF

    Интерьер больницы

    Доброго времени суток, форумчане! Предоставляю вам интерьер больницы проекта Beautiful Life RolePlay. Интерьер знаком тем, кто играл на данном сервере.
  11. Многие сталкивались с такой проблемой , что при создании модов с 0 у игроков в табе , в чате или на карте обозначаются ники разными цветами Решением этого , мне помогла одна унылая строчка :) В OnPlayerSpawn добавляем SetPlayerColor(playerid, 0xFFFFFFFF); //белый цвет , можно изменить на свой при желании :) Можно так-же это добавить в OnPlayerConnect , чтобы при коннекте не было цветных ников игроков в TAB'е Думаю многим это не помешает , многие это знали , но многие и нет :)
  12. Aleksandr_Fedosov

    Парковка около Отдела Полиции г.Южного

    Доброго времени суток уважаемые пользователи форума GSGAMES! Вот моя 2-ая работа на этот раз две парковки в г.Южном для сотрудников полиции Подойдет для RP серверов я думаю что работа выполнена качественно А так смотрите скрины:
  13. #CR7

    8 Бит Маппинг

    Всем привет вот моя вторая работа!
  14. vovik995

    Интерьер почты.

    Здравствуйте. Сегодня мне нечем было заняться и я решил в МТА сделать интерьер почты с видом на улицу. Строго не судите,т.к сделано в МТА(как вы знаете в МТА нету красивых стен и полов!). /code CreateObject(2957,2204.1672363,-2281.7180176,21.9627800,270.0000000,180.0000000,180.0000000); //object(chinatgaragedoor) (1) CreateObject(2957,2199.7658691,-2281.7180176,21.9627800,270.0000000,179.9995728,179.9995728); //object(chinatgaragedoor) (3) CreateObject(2957,2195.2758789,-2281.7180176,21.9627800,270.0000000,179.9995728,179.9995728); //object(chinatgaragedoor) (4) CreateObject(2957,2190.7832031,-2281.7180176,21.9627800,270.0000000,179.9995728,179.9995728); //object(chinatgaragedoor) (5) CreateObject(2957,2190.7832031,-2284.9348145,21.9627800,270.0000000,179.9999390,179.9999390); //object(chinatgaragedoor) (6) CreateObject(2957,2190.7832031,-2288.1762695,21.9627800,270.0000000,179.9999390,179.9999390); //object(chinatgaragedoor) (7) CreateObject(2957,2190.7810059,-2291.4282227,21.9627800,270.0000000,179.9995728,179.9995728); //object(chinatgaragedoor) (8) CreateObject(2957,2195.2512207,-2284.9348145,21.9627800,270.0000000,180.0003662,180.0003662); //object(chinatgaragedoor) (9) CreateObject(2957,2199.7587891,-2284.9348145,21.9627800,270.0000000,180.0001221,180.0001221); //object(chinatgaragedoor) (10) CreateObject(2957,2204.1599121,-2284.9348145,21.9627800,270.0000000,179.9945068,179.9945068); //object(chinatgaragedoor) (11) CreateObject(2957,2195.2827148,-2288.1762695,21.9627800,270.0000000,179.9995728,179.9995728); //object(chinatgaragedoor) (12) CreateObject(2957,2199.7687988,-2288.1762695,21.9627800,270.0000000,180.0001221,180.0001221); //object(chinatgaragedoor) (13) CreateObject(2957,2204.1757812,-2288.1704102,21.9627800,270.0000000,179.9945068,179.9945068); //object(chinatgaragedoor) (14) CreateObject(2957,2195.2485352,-2291.4282227,21.9627800,270.0000000,179.9996338,179.9996338); //object(chinatgaragedoor) (15) CreateObject(2957,2199.7238770,-2291.4370117,21.9627800,270.0000000,180.0003662,180.0003662); //object(chinatgaragedoor) (16) CreateObject(2957,2204.2075195,-2291.4282227,21.9627800,270.0000000,179.9945068,179.9945068); //object(chinatgaragedoor) (17) CreateObject(3055,2202.4067383,-2280.4340820,24.1944237,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (1) CreateObject(3055,2188.4404297,-2280.4340820,24.2202187,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (3) CreateObject(3055,2188.6015625,-2284.0048828,24.2202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (4) CreateObject(3055,2192.4333496,-2292.6076660,24.2202187,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (6) CreateObject(3055,2199.8308105,-2292.6076660,24.2452183,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (7) CreateObject(3055,2202.5295410,-2292.6076660,24.2306576,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (8) CreateObject(3055,2206.3471680,-2294.6342773,24.2202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (9) CreateObject(3055,2206.3471680,-2283.9948730,24.2202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (10) CreateObject(3055,2196.2019043,-2280.4340820,20.7952709,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (11) CreateObject(3055,2196.2678223,-2280.4340820,28.2201576,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (12) CreateObject(3055,2206.3471680,-2288.5363770,20.7952709,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (13) CreateObject(3055,2206.3471680,-2289.0024414,27.9452038,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (14) CreateObject(3037,2190.8388672,-2285.6672363,26.9205780,0.0000000,270.0000000,0.0000000); //object(warehouse_door2b) (2) CreateObject(3037,2195.2192383,-2285.6669922,26.9205780,0.0000000,270.0000000,0.0000000); //object(warehouse_door2b) (3) CreateObject(3037,2199.5913086,-2285.6684570,26.9205780,0.0000000,270.0000000,0.0000000); //object(warehouse_door2b) (4) CreateObject(3037,2203.9658203,-2285.6289062,26.9205780,0.0000000,270.0000000,0.0000000); //object(warehouse_door2b) (5) CreateObject(3037,2193.7895508,-2292.8867188,26.9205780,0.0000000,270.0000000,89.9999084); //object(warehouse_door2b) (6) CreateObject(3037,2201.1218262,-2292.9416504,26.9205780,0.0000000,270.0000000,90.0000000); //object(warehouse_door2b) (7) CreateObject(3037,2204.2373047,-2286.0202637,26.9205780,0.0000000,270.0000000,0.0000000); //object(warehouse_door2b) (8) CreateObject(977,2200.2993164,-2280.4194336,23.6259842,0.0000000,0.0000000,10.0000000); //object(newtowerdoor1) (1) CreateObject(977,2204.2373047,-2280.3793945,23.6259842,0.0000000,0.0000000,191.9975586); //object(newtowerdoor1) (2) CreateObject(2963,2190.7836914,-2292.8103027,24.0912800,0.0000000,0.0000000,270.0000000); //object(freezer_door) (1) CreateObject(2081,2189.1896973,-2281.0097656,22.0220985,0.0000000,0.0000000,0.0000000); //object(coffee_swank_3) (1) CreateObject(2081,2192.5769043,-2281.0097656,22.0220985,0.0000000,0.0000000,0.0000000); //object(coffee_swank_3) (2) CreateObject(2081,2196.2114258,-2281.0097656,22.0220985,0.0000000,0.0000000,0.0000000); //object(coffee_swank_3) (3) CreateObject(2082,2204.7966309,-2281.0158691,22.0220985,0.0000000,0.0000000,270.0000000); //object(coffee_med_3) (1) CreateObject(1744,2196.4479980,-2280.9489746,23.1134262,0.0000000,0.0000000,90.0000000); //object(med_shelf) (1) CreateObject(1744,2192.7131348,-2280.9489746,23.1134262,0.0000000,0.0000000,90.0000000); //object(med_shelf) (2) CreateObject(1744,2189.6140137,-2280.9489746,23.1134262,0.0000000,0.0000000,90.0000000); //object(med_shelf) (3) CreateObject(1742,2189.4704590,-2281.6525879,22.5544453,0.0000000,0.0000000,38.0000000); //object(med_bookshelf) (1) CreateObject(1742,2192.7553711,-2281.6525879,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (2) CreateObject(1742,2196.4572754,-2281.6525879,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (3) CreateObject(1742,2204.6813965,-2282.3461914,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (4) CreateObject(1744,2205.6281738,-2281.6525879,23.0979900,0.0000000,0.0000000,30.0000000); //object(med_shelf) (4) CreateObject(1649,2192.8740234,-2280.4340820,24.6128273,0.0000000,0.0000000,0.0000000); //object(wglasssmash) (1) CreateObject(1649,2197.3232422,-2280.4340820,24.6878262,0.0000000,0.0000000,0.0000000); //object(wglasssmash) (2) CreateObject(1649,2206.4140625,-2289.3022461,24.5878277,0.0000000,0.0000000,270.0000000); //object(wglasssmash) (3) CreateObject(10182,2194.5708008,-2290.2512207,22.5526657,0.0000000,0.0000000,0.0000000); //object(michdr) (1) CreateObject(3055,2196.7319336,-2289.6394043,20.7202187,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (15) CreateObject(3055,2202.3637695,-2289.6394043,20.7202187,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (16) CreateObject(3055,2192.8525391,-2293.6406250,20.7202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (17) CreateObject(3055,2202.7993164,-2289.6723633,27.9451618,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (18) CreateObject(3055,2196.7041016,-2289.6394043,27.9451618,0.0000000,0.0000000,0.0000000); //object(kmb_shutter) (19) CreateObject(3055,2192.8554688,-2293.5830078,24.2202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (20) CreateObject(10182,2198.9887695,-2290.3576660,22.5526657,0.0000000,0.0000000,0.0000000); //object(michdr) (2) CreateObject(10182,2204.1494141,-2290.4860840,22.5526657,0.0000000,0.0000000,0.0000000); //object(michdr) (3) CreateObject(10246,2206.2424316,-2292.1057129,22.5146179,0.0000000,0.0000000,0.0000000); //object(sav1sfe) (1) CreateObject(10246,2205.9987793,-2290.3732910,22.5146179,0.0000000,0.0000000,0.0000000); //object(sav1sfe) (2) CreateObject(10246,2205.7014160,-2291.3330078,22.5146179,0.0000000,0.0000000,0.0000000); //object(sav1sfe) (3) CreateObject(10246,2205.8952637,-2291.3737793,23.5144539,0.0000000,0.0000000,0.0000000); //object(sav1sfe) (4) CreateObject(1938,2188.6096191,-2289.3173828,23.1086102,0.0000000,0.0000000,180.0000000); //object(pkr_chp_hi17) (1) CreateObject(3055,2188.6015625,-2294.6591797,24.2202187,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (21) CreateObject(3055,2188.6015625,-2289.1831055,26.3020458,0.0000000,0.0000000,90.0000000); //object(kmb_shutter) (22) CreateObject(2188,2186.9367676,-2284.3508301,17.2830601,0.0000000,0.0000000,270.0000000); //object(blck_jack) (1) CreateObject(2942,2205.9819336,-2287.6335449,22.6649971,0.0000000,0.0000000,270.0000000); //object(kmb_atm1) (1) CreateObject(2941,2203.4633789,-2290.3859863,23.3807011,0.0000000,0.0000000,180.0000000); //object(temp_till) (1) CreateObject(2941,2198.2841797,-2290.2534180,23.4307003,0.0000000,0.0000000,179.9945068); //object(temp_till) (2) CreateObject(2941,2193.8720703,-2290.1018066,23.4307003,0.0000000,0.0000000,179.9945068); //object(temp_till) (3) CreateObject(1742,2194.3928223,-2291.0629883,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (5) CreateObject(1742,2198.9301758,-2291.1992188,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (6) CreateObject(1742,2203.9616699,-2291.3945312,22.5544453,0.0000000,0.0000000,37.9962158); //object(med_bookshelf) (7) CreateObject(2055,2201.2023926,-2281.6464844,22.6045856,0.0000000,0.0000000,0.0000000); //object(cj_target5) (1) Координаты входа:2200.8811,-2283.3738,23.0221.
  15. Komaroff 71

    Пулемёт на танке

    Добрый вечер,господа. Как-то раз видел вопрос,связанный с аттачем рабочего минигана к танку(или БТР,но не суть) Вот пример такого готового решения: В начале мода добавим: #define MAX_MINIGUNS 10 //количество танков #undef MAX_PLAYERS #define MAX_PLAYERS 100 //кол-во слотов new mgun[MAX_MINIGUNS] ,minigunnum = 0 ,vehhasminigun[MAX_VEHICLES] ,laser[MAX_PLAYERS]; #define PUB:%1(%2) forward %1(%2); public %1(%2) После этого добавим функцию в любое место(удобней в конец мода): GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); } В public OnGameModeInit(): for(new i = 0; i < MAX_VEHICLES; ++i) vehhasminigun[i] = 0; SetTimer("check", 5000, 1); SetTimer("loop", 500, 1); Теперь в конце мода создадим ещё несколько функций: PUB:check( ) { for( new i = 0; i < MAX_VEHICLES; ++i ) { new model = GetVehicleModel( i ); if( model == 432 ) { if( vehhasminigun[ i ] == 0 ) { vehhasminigun[ i ] = 1; mgun[ minigunnum ] = CreateObject( 2985, 0, 0, 0, 0, 0, 0 ); AttachObjectToVehicle( mgun[ minigunnum ], i, 0.74, 3.37, -0.25, 0.00, 0.00, 89.47 ); minigunnum ++; } } } return 1; } PUB:loop( ) { for( new i = 0; i < MAX_PLAYERS; ++i ) { if( IsPlayerConnected( i ) ) { new vehicleid = GetPlayerVehicleID( i ); new model = GetVehicleModel( vehicleid ); if( model == 432 ) { new keys ,ud ,lr; GetPlayerKeys( i, keys, ud, lr ); if( keys & 128 ) { SetPlayerAttachedObject( i, 0, 18695, 1, 0.379999, 1.799999, -2.700000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); laser[ i ] = CreateObject( 19084, 0.75, 3.84, 0.86, 0.00, 0.00, 92.61 ); AttachObjectToVehicle( laser[ i ], vehicleid, 0.73, 4.18, 0.86, 0.00, 0.00, 88.03 ); PlayerPlaySound( i, 1135, 0.0, 0.0, 0.0 ); SetTimerEx( "destroy", 250, 0, "i", i ); new Float:x ,Float:y ,Float:z ,Float:x2 ,Float:y2; GetPlayerPos( i, x2, y2, z ); #pragma unused x2 #pragma unused y2 GetXYInFrontOfPlayer(i, x, y, 5.0); for( new u = 0; u < MAX_PLAYERS; ++u) { if( IsPlayerInRangeOfPoint(u, 6.0, x, y, z ) && u != i) { new Float:hp; GetPlayerHealth( u, hp ); SetPlayerHealth( u, hp - 5 ); PlayerPlaySound( u, 1135, 0.0, 0.0, 0.0 ); if( hp < 1 ) CallLocalFunction( "OnPlayerDeath", "ddd", u, i, 38 ); } } } } } } return 1; } PUB:destroy(i) { RemovePlayerAttachedObject( i, 0 ); DestroyObject( laser[ i ] ); return 1; }
  16. Доброй ночи. Итак, сегодня мы рассмотрим простейшую ситуацию, которая поможет нам ответить на несколько вопросов: - в какой коллбэк и почему уходит любое сообщение, написанное в чат; - почему со строкой можно работать абсолютно так же, как и с массивом. Разберем ситуацию на примере. Бывают такие случаи, когда игрок по ошибке забыл переключить раскладку клавиатуры на английскую и при попытке ввода команды получает что-то вроде ".ксщт дщпшт зфыыцщкв" вместо "/rcon login password". Это, конечно, происходит исключительно по невнимательности, но - не есть хорошо. Как можно предусмотреть такую ситуацию? Ответ прост и просится сам - первым символом ошибочного сообщения будет точка, вторым - любой другой, кроме точки. Это очевидно - точка в русской раскладке и слэш - в английской находятся на одной и той же кнопке. Само собой разумеется, что можно эту ситуацию проконтролировать. Но как? Первоначально - проследим путь отправленной строки в чат. Клиент парсит введенную строку и проверяет первый символ. Это слэш? Отлично, строка отправится в OnPlayerCommandText и будет обрабатываться уже этой функцией. Не слэш? Значит, строка командой не является и ее нужно отправить в другой коллбэк - OnPlayerText. В этом и заключается разница между строкой-командой и строкой-текстом для клиента. Итак, коллбэк для отслеживания подобных опечаток мы определили, это OnPlayerText (playerid, text[]). Но как отследить, какие первые два символа в переданной строке text[]? Конечно, можно воспользоваться функцией работы с текстом strcmp и отследить эту самую точку, подобрав нужные параметры. Но это - изобретение велосипеда с квадратными колесами. Каждая строка (не только в Pawn, во многих других ЯП) - является массивом символов, каждый элемент этого массива хранит в себе ASCII-код нужного символа. Соответственно, если строка - массив, то и работать в ней можно абсолютно так же. Прямо в начале тела коллбэка проверяем первые два символа - text[0] и text[1]. Значение text[0] соответствует точке, а значение text[1] - нет? Наш случай! Выводим игроку сообщение об опечатке и, дабы текст не синхронизировался с остальными игроками, вернем false как результат обработки строки. public OnPlayerText(playerid, text[]) { if (text[0] == '.' && text[1] != '.') //Можно и по-другому. ASCII-код точки - 46, сравниваем напрямую: if (text[0] == 46 && text[1] != 46) { SendClientMessage (playerid, -1, "Проверьте раскладку клавиатуры."); return false; } //Остальной код обработки коллбэка будет уже для каждого свой. } Результат работы будет выглядеть примерно так. Пусть решение вышло в три строки кода, но оно является хорошим примером, на котором можно разобрать как разницу между командой и текстом, так и методы работы со строкой как с массивом. Решение авторское, перепост разрешен только с моего согласия и указания меня как автора.
  17. PROMO_4ka!™

    Маппинг "Порт"

    Здравствуйте, уважаемые пользователи GSGames. Выкладываю очередную работу в мта (с проектом беда, вот и выкладываю) Ну, начнём.
  18. AnacondaZ

    [Маппинг]В городе Южном,Дом 1)

    Эту работу я сделал сам...Специально для GSG,она очень красивая)для РП сервера самое то)!
  19. #GiFF

    Пригород Южного

    Решил сделать пригород Южного. Прошу не судить строго,т.к. я начал мапперить только сегодня и вот моя первая работа
  20. dokertsar

    Ферма

    Скажу честно, практически первая работа, вроде получилось норм, в самой игре смотрится отлично. Делал для своего сервера, но из Южного, переместились в Арзамас, и сейчас он слишком далеко. //======================================Ферма=================================== CreateDynamicObject(9153, 2148.50, -967.06, 1.49, 0.00, 0.00, 11.12); CreateDynamicObject(9153, 2140.59, -929.01, 1.49, 0.00, 0.00, 11.12); CreateDynamicObject(9153, 2105.83, -935.62, 1.49, 0.00, 0.00, 11.12); CreateDynamicObject(9153, 2113.17, -973.53, 1.49, 0.00, 0.00, 11.12); CreateDynamicObject(622, 2147.03, -993.30, 7.16, 0.00, 0.00, 0.00); CreateDynamicObject(622, 2138.25, -994.55, 7.16, 0.00, 0.00, 0.00); CreateDynamicObject(2252, 2185.92, -915.22, 0.74, 0.00, 0.00, 100.75); CreateDynamicObject(2252, 2147.60, -1021.93, -1.51, 0.00, 0.00, 6.28); CreateDynamicObject(2252, 2116.11, -1029.10, -3.78, 0.00, 0.00, 6.28); CreateDynamicObject(2252, 2063.54, -984.43, -1.53, 0.00, 0.00, 100.75); CreateDynamicObject(2252, 2057.82, -940.03, -0.08, 0.00, 0.00, 100.75); CreateDynamicObject(2252, 2197.90, -955.69, -2.24, 0.00, 0.00, 100.75); CreateDynamicObject(17074, 2096.20, -981.86, 4.46, 0.00, 0.00, 0.00); CreateDynamicObject(3515, 2085.79, -974.17, 0.30, 0.00, 0.00, 280.45); CreateDynamicObject(3515, 2083.85, -963.82, 0.30, 0.00, 0.00, 280.45);
  21. Здравствуйте Уважаемые Пользователи GSG!Я хочу предложить одну команду(на мой взгляд полезную) Что же она делает?! -Вы вводите команду(/ваша кмд замените на свою кмд),вводите команду и рядом координаты! И вас автоматически тпхает на те координаты.Может кому пригодится. Вот сама кмд! if(strcmp(cmd, "/ваша кмд", true) == 0) { new PosX[255]; new PosY[255]; new PosZ[255]; PosX = strtok(cmdtext, idx); PosY = strtok(cmdtext, idx); PosZ = strtok(cmdtext, idx); if(!strlen(PosX)) { SendClientMessage(playerid,COLOR_WHITE," Не ввел X координату. Использование: /tpme X Y Z"); return 1; } if(!strlen(PosY)) { SendClientMessage(playerid,COLOR_WHITE," Не ввел Y координату. Использование: /tpme X Y Z"); return 1; } if(!strlen(PosZ)) { SendClientMessage(playerid,COLOR_WHITE," Не ввел Z координату. Использование: /tpme X Y Z"); return 1; } SetPlayerPos(playerid,strval(PosX),strval(PosY),strval(PosZ)); return 1; }
  22. Ryslik42

    Сгорание колёс

    Доброго времени суток уважаемые пользователи форума. Представляю вам скрипт "Сгорание колёс" Суть скрипта, что после как 10 секунд как колеса шлифуют поверхность они лопаются. Автор: Igor_Jackson
  23. Ryslik42

    Анти-Мат

    Доброго времени суток уважаемые пользователи форума. Представляю вам скрипт "Анти-Мат" Суть скрипта скрывать нецензурные слова. Автор: BRICS Для того чтобы работал скрипт нужно создать файл BadWords.cfg, в него записываем слова которые вы не хотите видеть. Файл ExeptionWords.cfg используется для слов исключений. ЯндексДиск Если ссылка нерабочая, напишите в ЛС исправлю.
  24. Dsplay

    Ферма.

    Решил сделать ферму.
×

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

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