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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Въезд и выезд Аэропорта Мирного (Обновление) Вы конечно видели мою старенькую похожую работу, там было не много косовато и всё такое. Вот я и решил переделать И так, вот
  2. Доброго времени суток! Хочу представить вашему вниманию скрипт покупки мебели для CRMP. С помощью этого скрипта вы сможете покупать мебель(команда /furniture) и расставлять её в удобном для вас месте(команда /fplant). Скрипт адаптирован под версию мультиплеера CRMP 0.3e. Автор скрипта: jueix Изменения/исправления/адаптация под CRMP/русификация: Klebitz Планируется: 1. Добавить 3 мебельных магазина. 2. Мебель можно будет класть в багажник автомобиля. 3. Команда покупки мебели будет действовать в определённом радиусе. Видео: http://yadi.sk/d/HeRgPsEVJ9DTm
  3. #JokeStar

    Пар при дыхании

    Доброго времени суток! Я думаю, что многие из вас, играя на серверах SAMP и CRMP, видели, что у игроков выходит пар изо рта при дыхании. Теперь данная возможность может появится и на вашем сервере. Данный скрипт позволяет игрокам выдыхать пар: при обычной ходьбе 1 раз в 3 секунды, а при беге 1 раз в 1 секунду. Для установки скрипта вам необходимо скопировать 2 файла из архива в папку filterscripts и прописать название скрипта в файле server.cfg. Приятной игры! Скриншот: Автор Klebitz http://yadi.sk/d/gHhWfyhWJ9EDG A.Volovnik Убрал цитаты.
  4. Вы используйте команду /canal [1-10000] для выбора нужной вам частоты. После выбора частоты вы автоматический подключаетесь к выбранному вами каналу и можете активно вести общение с помощью команды /rс [текст]. Также другой или иной игрок может подключиться к вашей частоте. Ко всем forward: forward SendRcanalMessage(canal, color, string[]); Ко всем new: new Rcanal[MAX_PLAYERS]; В public OnPlayerConnect добавляем: Rcanal[playerid] = 0; В конец мода: public SendRcanalMessage(canal, color, string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Rcanal[i] == canal) { SendClientMessage(i, color, string); } } } }В public OnPlayerCommandText добавляем команды:if(strcmp(cmd, "/rс", true) == 0) { if(!IsPlayerConnected(playerid)) return 1; if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, -1, "Вы не можете писать, у вас молчанка"); if(Rcanal[playerid] < 1) return SendClientMessage(playerid, -1, "Вы не на частоте. Подключитесь, используя /canal (номер канала от 0 по 10000)"); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, -1, "Используйте: /rc [текст]"); format(string, sizeof(string), "(%d) %s: %s", Rcanal[playerid], sendername, result); SendRcanalMessage(Rcanal[playerid], TEAM_CYAN_COLOR, string); return 1; } if(strcmp(cmd, "/canal", true) == 0) { if(!IsPlayerConnected(playerid)) return 1; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Используйте: /canal [номер канала[(1-10000)]"); new canal; canal = strval(tmp); if(canal > 10000|| canal < 1) return SendClientMessage(playerid, -1, "Номер канала от 1 по 10000!"); Rcanal[playerid] = canal; format(string, sizeof(string), "Вы подключились к частоте номер %d", canal); SendClientMessage(playerid, COLOR_LIGHTBLUE,string); } Автор: NOD32
  5. Здравствуйте уважаемые пользователи Gs-Games. Сегодня я расскажу вам как создать пикап с бонусом. Начнем. 1. Сначала откроем наш мод. 2. Переходим в переменные new. И создадим там новою переменную. new FFF; 3. Далее перейдем в public OnGameModeInit И вставим туда. FFF = CreatePickup(ID пикапа,тип пикапа,X,Y,Z, ID виртуального мира пикапа);// Координаты X,Y,Z сменить на свои. Теперь когда мы создали пикап, наша задача сделать так, чтобы когда мы наступили на этот пикап нам выдавался бонус. 4. Идем далее в OnPlayerPickUpPickup Добавим следующее if(pickupid == FFF) // Это наше название пикапа, то есть когда мы записывали в переменной 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; // Лицензия на оружие. } Ну все не чего сложного. Наш урок на этом заканчивается. Спасибо за внимание.
  6. Доброго времени суток. Для собственных нужд необходима была отправка в чат сообщений длиной более 128 символов, без обрыва строки на середине и с корректным переносом. Имеющиеся реализации не устроили - перенос был оформлен не совсем корректно, да и выглядеть будет некошерно. Реализовал собственное решение, полностью совместимое с синтаксисом стандартных SendClientMessage/SendClientMessageToAll. forward SendClientMessageEx (playerid, color, const message[]); forward SendClientMessageToAllEx (color, const message[]); public SendClientMessageEx (playerid, color, const message[]) { new length = strlen(message); new outstr[128]; new trim; if (length > 127) { for (new i = 127; i>=0; i--) { trim = i; if (message[i] == ' ') break; } if (trim < 64) trim = 127; strmid (outstr, message, 0, trim, 128); SendClientMessage (playerid, color, outstr); strmid (outstr, message, trim, length, 128); SendClientMessage (playerid, color, outstr); } else SendClientMessage (playerid, color, message); return 1; } public SendClientMessageToAllEx (color, const message[]) { new length = strlen(message); new outstr[128]; new trim; if (length > 127) { for (new i = 127; i>=0; i--) { trim = i; if (message[i] == ' ') break; } if (trim < 64) trim = 127; strmid (outstr, message, 0, trim, 128); SendClientMessageToAll (color, outstr); strmid (outstr, message, trim, length, 128); SendClientMessageToAll (color, outstr); } else SendClientMessageToAll (color, message); return 1; }Для наглядности - скриншот. Не стоит обращать внимания на то, что он снят на адаптации мультиплеера - функции будут корректно работать, даже если использовать 0.3a-ветку SA:MP.
  7. Многие просят вырезать систему авто с мода gamer. Сегодня решил попробовать вырезать. Вырезал не так что попадется, а компилировал как скрипт. Так что думаю ничего не упустил. В коде есть закомментированные строки, их нужно включить когда вошьете авторынок в свой мод. Если не включите, не пойми что у вас там случиться. Если возникнут проблемы при компиляции пишите в данную тему. Автор вырезки: Amfy auto.pwn
  8. Здравствуйте уважаемые форумчане! Решил вырезать из своего мода команду на рестарт(но это не обычная команда на рестарт,она с причиной) Ну все хватит говорить попусту приступим к работе! 1)Добавляем в public OnDialogResponse следующее: if(dialogid == 564) { if(response) { new pname[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME); SendClientMessage(playerid,-1,"---------------------------------------------------------"); format(string, sizeof(string), "Гл.администратор %s : произвел рестарт сервера.", pname); SendClientMessageToAll(COLOR_GREEN,string); format(string, sizeof(string), "Причина рестарта: %s ",inputtext); SendClientMessageToAll(COLOR_RED,string); SendClientMessage(playerid,COLOR_YELLOW,"Через 10 секунды произодет рестарт"); SetTimer("GameModeInitExitFunc", 10000, false); SendClientMessage(playerid,-1,"---------------------------------------------------------"); new message[256]; format(message,sizeof(message),"Администратор: %s рестарт причина: %s",pname,inputtext); SendClientMessageToAll(COLOR_LIGHTBLUE,string); } else { SendClientMessage(playerid, COLOR_GRAD2, "Вы отменили рестарт"); return 1; }} Ну и саму команду для рестарта: if(strcmp(cmd, "/restart", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 4) { ShowPlayerDialog(playerid,564,DIALOG_STYLE_INPUT,"Причина","Введите причину рестарта","ОК","Отмена"); } else { SendClientMessage(playerid, COLOR_GREEN, "Вы не уполномочены!"); } } return true; } Вот и все если есть недочеты я думаю вы исправите!Спасибо за внимание!Не судите строго
  9. Вы все знаете эту команду.и да я уверен она есть у всех!Но я выкладываю для новичков которые только начинают в скриптинге или тем кто пишет свой мод с 0. ну ладно приступим вот команда: if(strcmp(cmd, "/slap", true) == 0) { if(Offlineonline(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /slap [playerid/PartOfName]"); return 1; } new playa; new Float:shealth; new Float:slx, Float:sly, Float:slz; playa = strval(tmp); if (PlayerInfo[playerid][pAdmin] >=3) { if(Offlineonline(playa)) { if(playa != INVALID_PLAYER_ID) { if(PlayerlogInfo[playa][lgolos] == 99||PlayerlogInfo[playa][lgolos] == 100){SendClientMessage(playerid, COLOR_ISPOLZUY,"Игрок имеет неприкосновенность!");return 1;} GetPlayerName(playa, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerHealth(playa, shealth); SetPlayerHealth(playa, shealth-5); GetPlayerPos(playa, slx, sly, slz); SetPlayerPos(playa, slx, sly, slz+5); PlayerPlaySound(playa, 1130, slx, sly, slz+5); printf("Админ: %s Подкинул %s",sendername, giveplayer); format(string, sizeof(string), "Администратор %s Дал ремешком по жопе игроку: %s ",sendername,giveplayer ); ABroadCast(0xD30505AA,string,1,playerid); } } } else { SendClientMessage(playerid, COLOR_GRAD1, "У вас нет прав на использование этой команды!"); } } return 1; }
  10. Всем привет Вот вырезал из своего мода, может кому надо. Варны можно снять обычной /unwarn if(strcmp(cmd, "/awarn", true) == 0) { if (PlayerInfo[playerid][pAdmin] >= 7) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /awarn [id] [причина]"); if (dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Доступ администратора","Введите пароль от административной панели","Ок","Отмена"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pAdmin] >= 7) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /awarn [id] [причина]"); PlayerInfo[giveplayerid][pWarns] += 1; PlayerInfo[giveplayerid][pAdmin] -=1; if(PlayerInfo[giveplayerid][pWarns] >= 3) { new ip[256]; new year, month,day; getdate(year, month, day); format(string, sizeof(string), "{ff4f30}Администратор %s был снят с администрирования админом %s [%d/3] предупреждений.", giveplayer,sendername,PlayerInfo[giveplayerid][pWarns]); SendClientMessageToAll(COLOR_LIGHTRED, string); format(string, sizeof(string), "Вы были сняты с должности администратора!"); SendClientMessage(giveplayerid, COLOR_LIGHTRED, string); GetPlayerIp(giveplayerid,ip,sizeof(ip)); PlayerInfo[giveplayerid][pAdmin] = 0; PlayerInfo[giveplayerid][pHelper] = 0; format(string, sizeof(string), "- Ник: [%s] IP: [%s]",giveplayer,ip); ABroadCast(COLOR_LIGHTRED,string,1); return 1; } format(string, sizeof(string), "{ff4f30}Администратор %s получил предупреждение от %s [%d/3]. Причина: %s", giveplayer,sendername,PlayerInfo[giveplayerid][pWarns], (result)); SendClientMessageToAll(COLOR_LIGHTRED,string); format(string, sizeof(string), "Внимание! Вы получили предупреждение! После 3-х предупреждений вы будете сняты с должности!"); SendClientMessage(giveplayerid, COLOR_LIGHTRED, string); return 1; } } } else { SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок не найден!"); } } return 1; } Значения: if (PlayerInfo[playerid][pAdmin] >= 7) 7 - Уровень администрирования, с которого можно выдавать предупреждение ------------------------------------------------------------------------------------------------------------ PlayerInfo[giveplayerid][pAdmin] -=1; -=1 - На сколько раз уровень администрирования понизится при предупреждении -------------------------------------------------------------------------------------------------------------- PlayerInfo[giveplayerid][pAdmin] = 0; 0 - Уровень администрирования после максимального количества предупреждений Думаю, разберетесь, т.к. я все подробно расписал. Если будут ошибки при компилировании или что то еще, пишите в тему, постараюсь ответить всем.
  11. Sumrak

    NEW MAP

    Карта МАПА.txt
  12. #Pawno

    Salute

    Доброго времени суток уважемые форумчани. Я хотел бы выложить скрипт Салютов , данный скрипт я переделал из исходников. Что сделано: Скрипт полностью на русском. Скрипт в данной версий пока на Rcon доступе. При запуске салютов будет лететь верх похожие на салют фонарики. При создание заряда появляется коробка похожая с салютами. Создание объектов и удаление на динамике. Скрипт использует такие инклуды как: Sscafan streamer dcmd Версия скрипта 1.0 , в ближайшие дни сделаю 1.1 версию. Если у вас есть пожелание что то в этот фс добавить пишите . Чтоб просмотреть команды fs: /fwhelp
  13. tatarin032000

    Интерьер для дома.

    Специально для паблика сделал интерьр. Думаю вам понравиться! Так-же координаты у двери: X - 2202.0002 Y - 2323.4146 Z - 20.9200
  14. Nikits

    Пост и трасса к мосту

    Прошу строго не судить, это моя одна из первых работ.
  15. Интерьер для Квартиры (Одна комната) CreateDynamicObject(19378, -2301.47, 357.37, -87.54, 0.00, 90.00, 0.00); CreateDynamicObject(19358, -2306.12, 354.31, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2304.43, 352.85, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2306.12, 357.43, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2306.12, 360.63, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2304.60, 362.07, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2301.40, 362.04, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2299.71, 360.48, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2296.53, 357.46, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2296.53, 354.34, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2298.13, 352.83, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2301.26, 352.85, -85.72, 0.00, 0.00, 90.00); CreateDynamicObject(10165, -2304.11, 360.68, -86.66, 0.00, 0.00, 90.00); CreateDynamicObject(10178, -2300.81, 361.48, -86.21, 0.00, 0.00, 270.00); CreateDynamicObject(19173, -2304.14, 361.97, -85.35, 0.00, 0.00, 0.00); CreateDynamicObject(10266, -2305.55, 353.45, -87.07, 0.00, 0.00, 0.00); CreateDynamicObject(10267, -2305.52, 354.53, -86.95, 0.00, 0.00, 90.00); CreateDynamicObject(10200, -2303.99, 353.28, -87.45, 0.00, 0.00, 180.00); CreateDynamicObject(10206, -2302.98, 353.31, -87.45, 0.00, 0.00, 180.00); CreateDynamicObject(10204, -2302.87, 353.34, -85.14, 90.00, 0.00, 0.00); CreateDynamicObject(10271, -2297.09, 353.27, -86.86, 0.00, 0.00, 270.00); CreateDynamicObject(10256, -2296.93, 354.19, -86.26, 0.00, 0.00, 270.00); CreateDynamicObject(19377, -2301.54, 357.37, -84.05, 0.00, 90.00, 0.00); CreateDynamicObject(19358, -2298.01, 358.96, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(3172, -2305.43, 357.29, -86.98, 0.00, 0.00, 90.00); CreateDynamicObject(1744, -2305.64, 357.24, -86.19, 0.00, 0.00, 180.00); CreateDynamicObject(1738, -2305.22, 357.25, -86.47, 0.00, 0.00, 180.00); CreateDynamicObject(1748, -2305.26, 357.75, -86.47, 0.00, 0.00, 180.00); CreateDynamicObject(1743, -2305.39, 356.60, -86.25, 0.00, 0.00, 180.00); CreateDynamicObject(1747, -2305.57, 357.84, -86.34, 0.00, 0.00, 180.00); CreateDynamicObject(1747, -2305.57, 358.24, -86.34, 0.00, 0.00, 180.00); CreateDynamicObject(1742, -2304.35, 357.32, -86.94, 0.00, 0.00, 180.00); CreateDynamicObject(1491, -2296.84, 357.74, -87.45, 0.00, 0.00, 135.00); CreateDynamicObject(19358, -2297.06, 358.02, -85.73, 0.00, 0.00, 45.00); CreateDynamicObject(1416, -2297.32, 355.00, -86.97, 0.00, 0.00, 0.00); CreateDynamicObject(19172, -2306.03, 356.87, -85.19, 0.00, 0.00, 90.00); CreateDynamicObject(1748, -2291.63, 330.30, -86.54, 0.00, 0.00, 0.00);
  16. Здравствуйте ув. пользователи сайта gs-games , сегодня я вам расскажу о оптимизации игровых модов. Посмотрим как будет выгледеть обычная команда: if(strcmp(cmd,"/tskill",true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pTskill] > 1000){ PlayerInfo[playerid][pTskill] = 1000; } if(PlayerInfo[playerid][pTskill] < 0){ PlayerInfo[playerid][pTskill] = 0; } format(string,sizeof(string),"Ваш скилл : %d / 1000",PlayerInfo[playerid][pTskill]); SendClientMessage(playerid,COLOR_BLUE,string); return 1; } return 1; } Теперь посмотрите команду более оптимизированую: CMD:tskill(playerid, params[]) { if(!IsPlayerConnected(playerid)) return true; if(PlayerInfo[playerid][pTskill]>999) return PlayerInfo[playerid][pTskill]=1000; if(PlayerInfo[playerid][pTskill]<0) return PlayerInfo[playerid][pTskill]=0; format(string,sizeof(string),"Ваш скилл : %d / 1000",PlayerInfo[playerid][pTskill]); SendClientMessage(playerid,COLOR_BLUE,string); return true; } 1) Комманды станут короче и более оптимизированы. Диалоги: Диалог до оптимизации: if(dialogid == 99) { olololo=1; } if(dialogid == 88) { olololo=2; } После switch(dialogid) { case 99: olololo=1; case 88: olololo=2; return true; } Чем же это оптимизирует? А тем, что при сравнении сервер тоже использует память, и в итоге если этих диалогов будет не 2 как в примере, а 20000. То при поиске диалога сервер просто-напросто повиснет, а в случае со свичем он просто ищет диалог. То-есть он не проверяет каждую возможность, а просто берет число и ищет кейс с ним. На этом наш урок закончен Автор урока : [Ega29]
  17. Aleksey_Dolgov

    Падающий снег.

    Здраствуйте уважаемые пользователи Gs-Games. К вашему вниманию. Были скрипты Падающего снега. Но выглядело не очень. Я Сделал другой выход. Чтобы добавить снег в мод, нужно В 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); Спасибо за внимание.
  18. #Pawno

    CRMP|RP v7.0.9

    Здраствуйте уважаемые пользыватели форума. Почему я решил мод выложить старой версий? да потому что задолбали все его продовать. Вообщем что есть в моде: Фракций. 1. Дпс 2.Фсб 3.Армия 4.Здравохранение 5. La costra nosta 6. РЖд 7. Правительство 8. Смотра 9. Репортеры 10. такси 11. Лицензеры 12. Итальянская мафий 13. непомню 14. Пожарная 15. русская мафия 16. Гопники 17. Уличные гонщики 18. Прокуратура 19. Батыревская братва 20. спецназ 21. южная братва 22. Атп 23. ППС 2. система бизнесов 3. Система авто - gamer 4. система домов - gamer 5. Система Обучение 6. Много команд :D 7. система подездов ну и другие системы. p.s чтоб удалить все дома /asellhousedom вроде. CRMP RP v7.0.9.zip
  19. Добрый День Форумчане... Вот решил выложить интерьер который не понадобился в моем моде... Он хорошо подойдет для Respawna или же Гостиницы... Вообщем смотрим фото: CreateDynamicObject(19450, 2516.09, -2134.89, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2516.09, -2125.29, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2520.79, -2139.73, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2530.29, -2139.72, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2535.11, -2136.44, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2535.17, -2122.50, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2520.97, -2120.59, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2530.57, -2120.59, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19378, 2528.53, -2135.27, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.92, -2135.22, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.94, -2124.80, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.52, -2124.82, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2530.27, -2135.39, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2530.29, -2124.91, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2520.58, -2135.35, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2520.75, -2124.89, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.34, -2136.65, 9.24, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.34, -2126.17, 9.24, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.65, -2126.07, 9.42, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.66, -2136.52, 9.42, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.89, -2136.50, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.89, -2126.03, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(18755, 2537.07, -2129.47, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(18756, 2537.05, -2129.42, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(18757, 2537.07, -2129.40, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2535.05, -2134.26, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.04, -2138.31, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.13, -2126.47, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.12, -2122.87, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2530.87, -2139.66, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2525.19, -2139.68, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2525.20, -2120.70, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2531.09, -2120.68, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2521.68, -2120.68, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2521.82, -2139.69, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2518.11, -2139.68, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(19404, 2517.60, -2123.78, 10.91, 0.00, 0.00, -90.00); CreateDynamicObject(19450, 2519.13, -2119.03, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19466, 2517.74, -2123.72, 12.01, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2519.20, -2122.78, 9.18, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2519.08, -2122.80, 9.18, 0.00, 0.00, 90.00); CreateDynamicObject(1749, 2517.57, -2123.19, 9.66, 0.00, 0.00, -90.00); CreateDynamicObject(1744, 2517.56, -2123.11, 10.44, 0.00, 0.00, -90.00); CreateDynamicObject(1742, 2517.57, -2121.90, 9.77, 0.00, 0.00, -90.00); CreateDynamicObject(1746, 2516.67, -2137.51, 9.66, 0.00, 0.00, -180.00); CreateDynamicObject(1746, 2516.71, -2133.82, 9.66, 0.00, 0.00, -180.00); CreateDynamicObject(19174, 2516.19, -2133.78, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(19175, 2516.15, -2125.59, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(19173, 2516.20, -2137.65, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(1536, 2516.16, -2131.24, 9.19, 0.00, 0.00, 90.00); CreateDynamicObject(1536, 2516.12, -2128.30, 9.19, 0.00, 0.00, 270.00); CreateDynamicObject(19378, 2518.92, -2135.22, 9.05, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.94, -2124.80, 9.05, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.52, -2124.82, 9.08, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.53, -2135.27, 9.04, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2539.50, -2125.57, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2539.51, -2136.05, 9.60, 0.00, -90.00, 90.00);
  20. Здраствуйте уважаемые пользователи форума. Хочу вам предоставить свой урок КПП на мосту. Я делал его для своего сервера что бы серверу придать больше РП. Пост Расположен на начале моста со стороны Южного. Этот пост могут открывать только 2 фракции. Когда сотрудников ПО нету на сервере пост открыт. Скрин как это выглядит:
  21. 1. Забыли скомпилировать мод Заходи в папку gamemodes и открывай .pwn файл и нажимай клавишу F5 2.Мод не до конца скомпилировался, или amx. файл поврежден Проверяем размер amx. файла, если 0 кб, значит ошибка компиляции. Проблема в исходном коде, или ошибка запуска компилятора. Запускайте pawncc.exe от имени администратора. 3.У вас нету в моде "точки входа" (функция main) Открываем мод и добавляем в любое место: ( не в stock и не public естественно ) main(){} 4.У вас не установлена программы на компьютере NET Framework или Microsoft Visual C++ Гуглим то и другое, качаем. 5.Не прописаны в server.cfg плагины (нужно проверить используются в моде они или нет для начала) Заходим в папку с сервером и находим файл server.cfg и если у вас нету строки plugins, то добавляем в конце plugins Имя плагина Если у вас стоит Linux то после имя плагина должно быть написано так Имя плагина.so И мой способ: 6).Качаем Streamer: https://code.google.com/p/samp-streamer-plugin/downloads/detail?name=streamer_plugin_v2_6_1_r84.zip&can=2&q= Заменяем всё в папке с модом. И компилируйте мод. И Запускаем мод. (Лично мне это помогло!)
  22. Этот скрипт позволит вам приглашать игрока на дуэль Выбрать оружие и ставку P.S.Координаты меняйте на свои! И так приступаем... Открываем new.pwn удаляем оттуда все и вставляем это: new StartingDuel[MAX_PLAYERS]; new CountDuelTimer[MAX_PLAYERS]; new WeaponDuel = 24; new MoneyDuel = 1000; new bool:DuelPlaceVisit = false; new Float:duelspawn[12][3] = { {-1129.8909,1057.5424,1346.4141}, {-1103.7913,1086.7838,1341.9036}, {-1082.0232,1043.7269,1343.7159}, {-1053.5138,1023.3488,1343.1503}, {-1048.3635,1058.6753,1343.9337}, {-1060.6057,1092.9423,1342.9473}, {-1036.6921,1088.7567,1343.1466}, {-1015.7525,1069.8811,1344.1016}, {-1020.4619,1034.2771,1342.4492}, {-992.12230,1036.9589,1341.8861}, {-973.94290,1061.5148,1345.6714}, {-992.10420,1090.4716,1342.8617} }; forward DuelStarting(playerid); //============================================================================== public OnPlayerConnect(playerid) { PlayerInDuel[playerid] = 0; GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } //============================================================================== public OnPlayerDisconnect(playerid, reason) { KillTimer(CountDuelTimer[playerid]); for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInDuel[i] == 1) { PlayerInDuel[i] = 0; DuelPlaceVisit = false; SendClientMessage(i, -1, "Твой противник покинул дуэль!"); OnPlayerSpawn(i); } } } return 1; } //============================================================================== public OnPlayerSpawn(playerid) { return 1; } //============================================================================== public OnPlayerCommandText(playerid, cmdtext[]) { new string[1024], cmd[256], tmp[256], giveplayerid, idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/duel", true) == 0) { if(PlayerInDuel[playerid] == 1) return SendClientMessage(playerid, -1, "Ты уже участвуешь в дуэли."); if(DuelPlaceVisit) return SendClientMessage(playerid, -1, "Подождите пока место для дуэли освободится."); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); WeaponDuel = strval(tmp); if(WeaponDuel < 0 || WeaponDuel > 42) return SendClientMessage(playerid, -1, "Ты ввёл не верный id оружия. Используй id от 0 до 42"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); MoneyDuel = strval(tmp); if(MoneyDuel < 1 || MoneyDuel > 100000) return SendClientMessage(playerid, -1, "Ты ввёл не верную сумму ставки. Используй сумму от 1$ до 100000$"); if(MoneyDuel > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "Тебе не хватает на ставку. Укажи другую сумму!"); if(MoneyDuel > GetPlayerMoney(giveplayerid)) return SendClientMessage(playerid, -1, "Твоему противнику не хватает на ставку. Укажи другую сумму!"); if(IsPlayerConnected(giveplayerid)) { new Float:POS[3]; GetPlayerPos(giveplayerid, POS[0], POS[1], POS[2]); if(playerid == giveplayerid) return SendClientMessage(playerid, -1, "Ты не можешь применить это действие к самому себе."); if(!IsPlayerInRangeOfPoint(playerid, 5, POS[0], POS[1], POS[2])) return SendClientMessage(playerid, -1, "Ты находишься слишком далеко от этого игрока."); if(PlayerInDuel[giveplayerid] == 1) return SendClientMessage(playerid, -1, "Этот игрок уже участвует в дуэли."); GetDuelCreate[giveplayerid] = playerid; format(string, sizeof(string), "Ты успешно пригласил игрока {9DDAF2}%s{FFFFFF} на дуэль! Дождись ответа.", pNick(giveplayerid)); SendClientMessage(playerid, -1, string); format(string, sizeof(string), "Игрок %s приглашает тебя на дуэль.\n\nОружие: %d\nСтавка: %d$", pNick(playerid), WeaponDuel, MoneyDuel); ShowPlayerDialog(giveplayerid, DUEL_ID, DIALOG_STYLE_MSGBOX, "Приглашение на дуэль", string, "Да", "Нет"); } else { SendClientMessage(playerid, -1, "Игрок с указанным тобой id не найден!"); } return 1; } return 0; } //============================================================================== public DuelStarting(playerid) { new string[256]; StartingDuel[playerid] -= 1; format(string, sizeof(string), "~y~STARTING: ~w~%d", StartingDuel[playerid]); GameTextForPlayer(playerid, string, 999, 3); SetPlayerHealth(playerid, 100); if(StartingDuel[playerid] == 0) { GameTextForPlayer(playerid, "~g~DUEL START", 3000, 3); TogglePlayerControllable(playerid, true); KillTimer(CountDuelTimer[playerid]); } return 1; } //============================================================================== public OnPlayerDeath(playerid, killerid, reason) { if(PlayerInDuel[killerid] == 1 && PlayerInDuel[playerid] == 1) { new string[256]; DuelPlaceVisit = false; PlayerInDuel[killerid] = 0; PlayerInDuel[playerid] = 0; GetDuelCreate[killerid] = INVALID_PLAYER_ID; GetDuelCreate[playerid] = INVALID_PLAYER_ID; GivePlayerMoney(killerid, MoneyDuel); GivePlayerMoney(playerid, -MoneyDuel); format(string, sizeof(string), "~g~+%d$", MoneyDuel); GameTextForPlayer(killerid, string, 1000, 1); format(string, sizeof(string), "~r~-%d$", MoneyDuel); GameTextForPlayer(playerid, string, 1000, 1); format(string, sizeof(string), ">>> В дуэли между игроками {FFFFFF}%s{00FF00} и {FFFFFF}%s{00FF00} победил игрок {FFFFFF}%s", pNick(killerid), pNick(playerid), pNick(killerid)); SendClientMessageToAll(0x00FF00FF, string); SetTimerEx("OnPlayerSpawn", 1000, false, "i", killerid); return 1; } return 1; } //============================================================================== public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new string[1024]; new dueledid = GetDuelCreate[playerid]; if(dialogid == DUEL_ID) { if(response) { if(PlayerInDuel[playerid] == 1) { SendClientMessage(playerid, -1, "Ты уже участвуешь в дуэли."); SendClientMessage(dueledid, -1, "При соглашении на участие в дуэли произошла ошибка!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(PlayerInDuel[dueledid] == 1) { SendClientMessage(playerid, -1, "Игрок, отославший тебе приглашение, уже участвует в дуэли."); SendClientMessage(dueledid, -1, "При соглашении на участие в дуэли произошла ошибка!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(DuelPlaceVisit) { SendClientMessage(playerid, -1, "Подожди пока место для дуэли освободится."); SendClientMessage(dueledid, -1, "Подожди пока место для дуэли освободится."); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(IsPlayerConnected(dueledid)) { PlayerInDuel[playerid] = 1; PlayerInDuel[dueledid] = 1; DuelPlaceVisit = true; new rand1 = random(sizeof(duelspawn)); SetPlayerPos(playerid, duelspawn[rand1][0], duelspawn[rand1][1], duelspawn[rand1][2]); new rand2 = random(sizeof(duelspawn)); SetPlayerPos(dueledid, duelspawn[rand2][0], duelspawn[rand2][1], duelspawn[rand2][2]); SetCameraBehindPlayer(playerid); SetCameraBehindPlayer(dueledid); SetPlayerInterior(playerid, 10); SetPlayerInterior(dueledid, 10); SetPlayerHealth(dueledid, 100); SetPlayerHealth(playerid, 100); SetPlayerVirtualWorld(playerid, DUEL_MIR); SetPlayerVirtualWorld(dueledid, DUEL_MIR); TogglePlayerControllable(playerid, false); TogglePlayerControllable(dueledid, false); StartingDuel[playerid] = 6; StartingDuel[dueledid] = 6; CountDuelTimer[playerid] = SetTimerEx("DuelStarting", 1000, true, "i", playerid); CountDuelTimer[dueledid] = SetTimerEx("DuelStarting", 1000, true, "i", dueledid); ResetPlayerWeapons(playerid); ResetPlayerWeapons(dueledid); GivePlayerWeapon(playerid, WeaponDuel, 99999); GivePlayerWeapon(dueledid, WeaponDuel, 99999); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } else { SendClientMessage(playerid, -1, "Игрок, отославший тебе приглашение, отсоеденился!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } } else { format(string, sizeof(string), "Ты отказался на участие в дуэли с игроком {9DDAF2}%s", pNick(dueledid)); SendClientMessage(playerid, -1, string); format(string, sizeof(string), "Игрок {9DDAF2}%s{FFFFFF} отказался на участие в дуэли с тобой!", pNick(playerid)); SendClientMessage(GetDuelCreate[playerid], -1, string); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } return 1; } return 1; } //============================================================================== stock pNick(playerid) { new nick[MAX_PLAYER_NAME]; GetPlayerName(playerid, nick, MAX_PLAYER_NAME); return nick; } //============================================================================== strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } Вот и всё! Если будут ошибки пишите
  23. PROMO_4ka!™

    Въезд в Аэропорт "Мирный"

    Всем привет! Выкладываю самую мою первую работу в MTA Въезд в Аэропорт "Мирный". Не судите строго=)
×

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

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