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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. #Warface

    Radar

    Здравствуйте уважаемые пользователи GSG! Сегодня я выложу скрипт радара который следит за скоростью игроков, когда они превысили скорость. Автор не я и не знаю кто! команды радара. setradar-установить радар(на скринах всё видать) delradar-удалить радара(на скринах всё видать) http://rghost.ru/48781626 http://rghost.ru/48781640 http://rghost.ru/48781657 http://rghost.ru/48781677 http://rghost.ru/48781686 ccылка:http://rghost.ru/48781714 пароль 123
  2. Amfy

    Tipster (Жучок)

    Описание: Данный скрипт позволит прицепить жучок к игроку и отслеживать данного игрока по этому самому жучку. При попытке прикрепить жучка, срабатывает рандом, т.е у вас может не получиться прикрепить жучок. В случае если рандом будет на вашей стороне, запускается таймер для вас на 1 секунду, если в течении этой секунды, игрок на которого вы пытается прицепить жучка не сменит свою позицию, то жучок будет успешно прикреплен. Если же в течении этой секунды игрок сменит свою позицию, у вас не получиться прикрепить на него жучок и ему будет написано мол на него пытались прикрепить жучок но, не напишет кто пытался. Далее.. если всё же жучок прикреплен успешно, у вас на радаре будет обновляется его месторасположение. Команды: /tipster [iD] - прикрепить жучок к указанному игроку. /tipsteroff - прекратить слежение за игроком. [spoiler=Скриншоты:] Скачать: RGHost: http://rghost.ru/48430383 Пароль: gsg P.S Тестил сам с собой, поэтому все тексты на скриншоте пишуться мне. После теста впилил проверку на то, что нельзя нацепить жучка на себя. P.S Для обновления используется public OnPlayerUpdate, это не есть хорошо. Вообщем, если у вас в моде есть секундный таймер, код из public OnPlayerUpdate вставьте в секундный таймер. Автор: Amfy
  3. Думаю смысл системы понятен из названии темы. Но, я всё же объясню. Описание: Игрок устанавливает противотанковую мину и когда танк наезжает на эту мину, происходит взрыв.
  4. Здравствуйте, уважаемые пользователи портала! Решил выложить русскоязычный скрипт. Смысл его очень прост: сделать необходимый поворот камеры, при том не затратив особых усилий. В управлении он так же довольно прост: достаточно просто зайти в игру и ввести /cameditor. Автор не я, просто нашел данный скрипт на просторах интернета и решил поделиться с вами. Удачи. camers.pwn
  5. Всем привет, дело было вечером, дело было не чего. От такой скукоты сделал калькулятор, просто и со вкусом. Понятно что он не кому не нужен к чертям, хотя бы пусть новички посмотрят как выглядит работоспособный код. Я не пытался изобретать велосипед. Команда: /calc Видео: http-~~-//youtu.be/xkLe89NRzGs Pastebin: http://pastebin.com/rYRGz9AQ (Табуляция испортилась) Author: FanHamMer P.S. На самом деле история другая, но так как она не связана с данным форумом, не буду оглашать.
  6. Эта кмд создана чтобы писать xD else if(strcmp(cmdtext,"/piss",true) == 0) { if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return true; giveplayerid= GetClosestPlayer(playerid); if(PlayerInfo[playerid][pSex] == 1) //чтобы девочки немогли этого делать xD { SetPlayerSpecialAction(playerid,68); //Вроде как анимация [img=http://gsgames.ru/forum/public/style_emoticons/<#EMO_DIR#>/wink.gif] SetPlayerDrunkLevel(playerid, 0); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s справляет нужду", sendername); //пишем в чат на расстоянние 10 ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); //Цвет пурпурный //SetPlayerAttachedObject(playerid, 1, 322, 1, -0.403834, 0.239940, 0.038157, 279.414489, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); } return true;Вставить в OnGameModeText
  7. else if(strcmp(cmd, "/kick", true) == 0) { if(dostup[playerid] != true)return true; { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{DDA0DD} >> Введите{FFFFFF}: /kick [ИД] [причина]"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pLevel] >= 2 && PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); 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; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /kick [ИД] [причина]"); new year, month,day; getdate(year, month, day); PlayerInfo[giveplayerid][pRp] -=5; format(string, sizeof(string), "Администратор %s кикнул %s. Причина: %s", sendername,giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); Kick(giveplayerid); return true; } } } else { SendClientMessage(playerid, COLOR_GREY, "{DB7093} [ERROR]: {D3D3D3} Игрок не найден!"); } } return true;
  8. Max_Maslov

    /me /do /try [zcmd] [sscafn2]

    Прощу прощение за команду /me, забыл ProxDetector. Итак теперь для того что бы команды работали нужны: [zcmd] и [sscafn]. - Как использовать командный процессор zcmd + sscafn! Ко всем define, если нет: #define COLOR_PURPLE 0xC2A2DAAA В любое свободное место пишем:/me CMD:me(playerid, params[]) { new string[64]; if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /me [действие]"); format(string, sizeof(string), "* %s %s", Name(playerid), params[0]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return true; } CMD:do(playerid, params[]) { new string[64]; if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /do [действие]"); format(string, sizeof(string), "* %s ((%s))", Name(playerid), params[0]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return true; } /try CMD:try(playerid, params[]) { new string[64]; if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /try [действие]"); new temptryrand = random(2); if(temptryrand == 1) { format(string, sizeof(string), "* %s %s {00ff00}| Удачно", Name(playerid), params[0]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return true; } else { format(string, sizeof(string), "* %s %s {ff7518}| Неудачно", Name(playerid), params[0]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } return true; } В конец мода: stock Name(playerid) { new PlayerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); return PlayerName; } stock ProxDetector(Float:radi, playerid, string[], col1, col2, col3, col4, col5) { if(IsPlayerConnected(playerid)) { new Float:posx, Float:posy, Float:posz; new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)) { GetPlayerPos(i, posx, posy, posz); tempposx = (oldposx -posx); tempposy = (oldposy -posy); tempposz = (oldposz -posz); if(((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SendClientMessage(i, col1, string); else if(((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SendClientMessage(i, col2, string); else if(((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SendClientMessage(i, col3, string); else if(((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SendClientMessage(i, col4, string); else if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SendClientMessage(i, col5, string); } } } } return true; }
  9. Max_Maslov

    /me [zcmd] [sscafn2]

    Ко все define, у кого нет: #define COLOR_PURPLE 0xC2A2DAAA CMD:me(playerid, params[]) { new string[64]; if(sscanf(params, "s[128]", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /me [действие]"); format(string, sizeof(string), "* %s %s", Name(playerid), params[0]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return true; } В конец мода: stock Name(playerid) { new PlayerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); return PlayerName; }
  10. Предлагаю вашему вниманию скрипт, скачанный давно мною, опять же с этого форума. Помните, авто находились возле торгового центра Южный? Вот и к этому скрипту предлагалась отдельная стоянка. Но при установки стоянки, игра к подъезду к этой стоянке, вылетала. Поэтому я положил этот скрипт к себе в папочку "На доработку". Что я поменял: Изменил спавн авто (теперь все авто стоят напротив клуба 8бит) Изменил, все авто, теперь только "москвичи", только хардкор. Добавил 4 мотоцикла. Скрипт весь на диалогах. -=* Код.*=- -=* Готовый скрипт.*=- -=* Screenshots *=- * Скрипт, я только редактировал, он не является переделанным скриптом, который выложил tatarin. Скрипт выкладывали, год назад, на этот форум, после произошла очистка, оригинал сохранился, но он не исправен в работе. Жду комментарий!
  11. Думаю многим пригодиться эта регистрация+статистика+кмд Скрин: Регистрация/Логин Смена пароля в диалоге Статистика игрока Киллы Смерти Деньги Сохранённые позиции Проверка на Онлайн Скин - Сохранение позиции при выходе и смерти - Телепорт командой на эти самые позиции Команды: CMD - /changepass - Смена пароля CMD - /gotooldpos - Телепорт на сохранённые в файле позиции CMD - /mystats - Статистика о cебе CMD - /pstats - Диалог с вводом ID - Статистика игрока или файла на сервере rega dini.pwn
  12. #Jack.Black

    RP Имя

    В public OnPlayerConnect(playerid) if(!IsRPNick(playerid)) { SendClientMessage(playerid,CINFO,"У Вас Non-RP ник. Вы должны сменить его на вид: Имя_Фамилия"); SendClientMessage(playerid,CINFO,"Имя_Фамилия должны быть на латинице!"); SendClientMessage(playerid,CINFO,"Пример: Jack_Black"); Kick(playerid); return 1; } В конец мода: stock IsRPNick(playerid) { new plname[MAX_PLAYER_NAME]; GetPlayerName(playerid, plname, MAX_PLAYER_NAME); for(new i=0;i<strlen(plname);i++) { if( !((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_')) { return 0; // недопустимые символы в нике } } new d = strfind(plname, "_"); if( d==-1 ) return 0; // нет _ в нике if(strfind(plname, "_", false, d+1) != -1) return 0; // больше одного _ в нике new name[10]; strmid(name, plname, 0, d, sizeof name); new surname[10]; strmid(surname, plname, d+1, strlen(plname), sizeof surname); if(strlen(name)<3 || strlen(name)>9) return 0; // неверная длина имени if(strlen(surname)<3 || strlen(surname)>9) return 0; // неверная длина фамилии if(!(name[0]>='A' && name[0]<='Z')) return 0; // первая буква имени не заглавная if(!(surname[0]>='A' && surname[0]<='Z')) return 0; // первая буква фамилии не заглавная for(new i=1;i<strlen(name);i++) { if(!(name[i]>='a'&&name[i]<='z')) return 0; // неверные буквы в имени } for(new i=1;i<strlen(surname);i++) { if(!(surname[i]>='a'&&surname[i]<='z'))return 0; // неверные буквы в фамилии } return 1;// ok }
  13. Rustyk

    Антимат

    Этот скрипт убирает брань с вашего сервера %) Никто не сможет сказать даже " У р о д " ((Типо с пробелами))antimat.rar
  14. Mr.DrYou97

    Шипы

    Команда для создания шипов с пробитием колёс. if(strcmp(cmd, "/stinger", true) == 0) { if(!(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)) // Фракция { SendClientMessage(playerid, COLOR_GRAD1, "Вы не из ДПС!"); return 1; } if(PlayerInfo[playerid][pRank]<7) // ранг,с которого можно ставить шипы { SendClientMessage(playerid, COLOR_GREY, "Вы должны дослужится до лейтенанта, чтобы ставить шипы!"); return 1; } if(totalstinger==(MAX_STINGERS-1)) { SendClientMessage(playerid, COLOR_GRAD1, "Шипы закончились, уберите другие шипы!"); // если закончились шипы return 1; } if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_GRAD1, "Вы должны выйти из машины!"); // если человек в авто return 1; } /*if(PlayerInfo[playerid][pTeam]==1&&PlayerInfo[playerid][pRank]<6) // для 1 фракции с 6 ранга { SendClientMessage(playerid, COLOR_GRAD1, "Шипы можно ставить с 6го ранга"); return 1; } if(PlayerInfo[playerid][pTeam]==13&&PlayerInfo[playerid][pRank]<3) //для 13 фракции шипы с 3 ранга { SendClientMessage(playerid, COLOR_GRAD1, "Шипы можно ставить с 3го ранга"); return 1; }*/ new rtext[256]; if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)// { if(PlayerInfo[playerid][pRank] == 1) { rtext = "Рядовой полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 2) { rtext = "Мл. сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 3) { rtext = "Сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 4) { rtext = "Ст. сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 5) { rtext = "Старшина полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 6) { rtext = "Мл. лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 7) { rtext = "Лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 8) { rtext = "Ст. лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 9) { rtext = "Капитан полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 10) { rtext = "Майор полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 11) { rtext = "Подполковник полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 12) { rtext = "Полковник полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 13) { rtext = "Генерал-майор полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 14) { rtext = "Генерал-лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 15) { rtext = "Генерал-полковник полиции (ГАИ)"; } else { rtext = "Полковник полиции (ГАИ)"; } } totalstinger=totalstinger+1; new Float:xA,Float:yA,Float:zA,Float:rot; GetPlayerPos(playerid,xA,yA,zA); GetPlayerFacingAngle(playerid,rot); GetPlayerName(playerid,sendername,sizeof(sendername)); stinger[totalstinger]= CreateObject(2899,xA,yA,(zA-0.87),0.0,0.0,rot); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 1, 1, 1, 2000, 1); format(string, sizeof(string), "* %s %s установл шипы",rtext,sendername); ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); if(MAX_STINGERS-totalstinger>0){ format(string,sizeof(string), "Осталось %d шипов.", (MAX_STINGERS-1-totalstinger)); } else { format(string,sizeof(string), "Осталось 0 шипов."); } SendClientMessage(playerid,COLOR_WHITE,string); return 1; } Так же кмд для удаления if(strcmp(cmd, "/delstinger", true) == 0) { if(!(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)) { SendClientMessage(playerid, COLOR_GRAD1, "Вы не ГАИ!"); return 1; } new Float:xA,Float:yA,Float:zA; for(new id=0; id<MAX_STINGERS; id++) { if(IsValidObject(stinger[id])) { GetObjectPos(stinger[id],xA,yA,zA); if(IsPlayerInRangeOfPoint(playerid,1.2,xA,yA,zA)) { new rtext[256]; if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)// { if(PlayerInfo[playerid][pRank] == 1) { rtext = "Рядовой полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 2) { rtext = "Мл. сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 3) { rtext = "Сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 4) { rtext = "Ст. сержант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 5) { rtext = "Старшина полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 6) { rtext = "Мл. лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 7) { rtext = "Лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 8) { rtext = "Ст. лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 9) { rtext = "Капитан полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 10) { rtext = "Майор полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 11) { rtext = "Подполковник полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 12) { rtext = "Полковник полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 13) { rtext = "Генерал-майор полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 14) { rtext = "Генерал-лейтенант полиции (ГАИ)"; } else if(PlayerInfo[playerid][pRank] == 15) { rtext = "Генерал-полковник полиции (ГАИ)"; } else { rtext = "Полковник полиции (ГАИ)"; } } GetPlayerName(playerid,sendername,sizeof(sendername)); DestroyObject(stinger[id]); totalstinger-=1; format(string, sizeof(string), "* %s %s убрал шипы",rtext,sendername); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 1, 1, 1, 2000, 1); ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string,sizeof(string), "Осталось %d шипов", (MAX_STINGERS-1-totalstinger)); SendClientMessage(playerid,COLOR_WHITE,string); return 1; } } } SendClientMessage(playerid, COLOR_GRAD1, "Вы не возле шипов"); return 1; }
  15. Доброго дня суток, дорогие форумчане. Сегодня я решил написать Анти взлом RCON и поделиться этим с Вами. Вот сам код: (P.S. Если у вас в моде уже есть паблик OnRconLoginAttempt, просто скопируйте все, что в нем находится.) Вставьте в любое место Вашего мода: public OnRconLoginAttempt(ip[], password[], success) { for(new i=0; i<GetMaxPlayers(); i++) {//Цикл if(success == 0) {//Если вход в RCON не удался new text[144], name[MAX_PLAYER_NAME];//Тут хранится имя игрока и сообщение, выводимое в чат GetPlayerName(i, name, sizeof(name));//Узнаем имя игрока format(text, sizeof(text), "%s был забанен за попытку взлома RCON пароля!", name);//Форматируем строку (Можете подставить свой текст) SendClientMessageToAll(-1, text);//Выводим текст в чат всем BanEx(i, "Попытка взлома RCON пароля!");//Можете подставить свое действие (В данном случае банит с причиной "Попытка взлома RCON пароля") } } return 1; } Вот и все! Теперь, если кто-то введет неправильный RCON пароль, в моем случае, его забанит. Можно сделать и попытки входа (Например, если человек ввел 3 раза неправильно пароль, его банит). Автор: Max_Mister
  16. Dundik

    3D Speedometer

    Схожий спидометр со спидометром из JC2MP. Не поворачивается при повороте камеры (пробовал, он мигает, не предлагать). Видим только для водителя. Подстраивается под параметры транспорта (для некоторых моделей немного неверен). Требования: Incognito's Streamer Plugin Ссылка: Тык
  17. Доброго времени суток, уважаемые пользователи портала! Сегодня мы с вами разберем, как сделать лог убийств с сохранением ников обоих игроков и времени убийств. Итак, начнем!Перед началом проверьте у себя в моде присутствие следующей строки: #include <file> В public OnPlayerDeath закинем код следующего вида: new year, month,day;//переменные даты new hour,minute,second;//переменные времени new nick1[24];//ник убитого new nick2[24];//ник убийцы new string[256]; getdate(year,month,day); //вычисление даты gettime (hour,minute,second);//вычисление времени GetPlayerName(playerid, nick1, sizeof(nick1));//Получаем ник убитого GetPlayerName(killerid, nick2, sizeof(nick2));//Получаем ник убийцы. format(string, sizeof(string), "[%d.%d.%d][%d:%d:%d]%s ubil igroka %s", year, month, day, hour, minute, second, nick2, nick1);//Собираем весь пазл KillLog(string);//Обращаемся к паблику записи лога Далее в любое место: forward KillLog([string]); public KillLog([string]) { new entry[256]; format(entry, sizeof(entry), "%sn",string);//Подготавливаем к записи new File:hFile;//переменная под файл hFile = fopen("logkill.log", io_append);//открываем файл fwrite(hFile, entry);//записываем! fclose(hFile);//закрываем ФАЙЛ! } В папке scriptfiles создайте папку log и в ней файл kill.log Удачи! Спасибо за внимание! Ах да, скрины:
  18. tatarin032000

    Система домов

    О скрипте: Версия 1.5: • Вы можете создавать дом где вы хотите используя команду /createhouse • Дома сохраняются автоматически и нет угрозы слёта • Вы можете хранить деньги в сейфе используя /storecash и /takecash • Каждый может войти в ваш дом, но можно его закрыть командой /lockhouse • Вы можете арендовать дом используя /renthouse и /unrenthouse • Несколько интерьеров для дома (Всё работают на CR:MP) • Вы можете улучшать свой дом командой /houseupgrade • Каждый игрок может себе построить дом где ему надо, но администратор должен одобрить это командой /approvehouse или /denyhouseчтобы отменить стройку • Каждый игрок может иметь машину, которую может припарковать в любом угодном месте командой /park • Сделаны иконки на карте • Для того чтобы одобрить дом, вам нужно быть залогиненым под RCON администратором Версия: 2.1: Немного переписал скрипт: Убрал домашнее авто Теперь только РКОН админы могут создавать дома на продажу, а игроки могут их купить без проверки админом http://rghost.ru/41641175(версия 2.1) Автор: Vlad_Dredd http://rghost.ru/40951343(версия 1.5)
  19. Rustyk

    Очки

    Ко всем #define: #define SetPlayerHoldingObject(%1,%2,%3,%4,%5,%6,%7,%8,%9) SetPlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJ ECTS-1,%2,%3,%4,%5,%6,%7,%8,%9) #define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_ OBJECTS-1) #define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1,MAX_PLAYER_ATTAC HED_OBJECTS-1) Ко всем forward:forward Hide(target); Ко всем new: new Text:MsgBox; Ко всем enum'ам: enum CommonRed = 19006, CommonOrange, CommonGreen, CommonBlue, CommonPurple, CommonEspiral, CommonBlack, CommonEyes, CommonXadrex, CommonTransparent, CommonXRayVision, SquareFormatYellow, SquareFormatOrange, SquareFormatRed, SquareFormatBlue, SquareFormatGreen, RayBanGray, RayBanBlue, RayBanPurple, RayBanPink, RayBanRed, RayBanOrange, RayBanYellow, RayBanGreen, CircularNormal, CircularYellow, CircularRed, CircularBlack, CircularXadrex, CircularThunders, CopGlassesBlack = 19138, CopGlassesRed = 19139, CopGlassesBlue = 19140, В enum pInfo добавляем строчку:pGlasses, В паблике OnGameModeInit ко всем new добавьте: new cmd[128], tmp[128], idx, glasseid, skin, id; И наконец создадим кмд , в OnPlayerCommandText добавим: [CODE]if(!strcmp("/glasses",cmd,true)) { tmp = strtok(cmdtext, idx); skin = GetPlayerSkin(playerid); id = strval(tmp); if(!id || id > 33) return SendClientMessage(playerid, 0xFFFFFFAA, "(Error) Syntax: /glasses [1 - 33"); TextDrawShowForPlayer(playerid, MsgBox); SetTimerEx("Hide", 3500, false, "d", playerid); //if(PlayerInfo[playerid[pGlasses <= 0) //{ //SendClientMessage(playerid, COLOR_RED, "** У вас нет очков,купите их в магазине!"); //return 1; } if(id > 30) goto PutPoliceGlasses; else { id--; glasseid = CommonRed + id; SetPlayerHoldingObject(playerid, glasseid, 2, SkinOffSet[skin[0, SkinOffSet[skin[1, SkinOffSet[skin[2, SkinOffSet[skin[3, SkinOffSet[skin[4, SkinOffSet[skin[5); return 1; } PutPoliceGlasses: glasseid = CopGlassesBlack + (id - 31); SetPlayerHoldingObject(playerid, glasseid, 2, SkinOffSet[skin[0, floatadd(SkinOffSet[skin[1, 0.004500), SkinOffSet[skin[2, SkinOffSet[skin[3, SkinOffSet[skin[4, SkinOffSet[skin[5); return 1; }
  20. Вот решил создать урок посвященный сексу с Женой/Мужем v0.2. Итак, давайте приступим. Откроем наш мод. Перейдем к концу мода. Вставляем следующий код: if(strcmp(cmd, "/propsesex", true) == 0||strcmp(cmd, "/prsex", true) == 0){if(IsPlayerConnected(playerid)){if(PlayerInfo[playerid][pMarried] > 1){if(!IsPlayerInAnyVehicle(playerid)){SendClientMessage(playerid, COLOR_GREY, "Сексом занимаются только в машинах.");return 1;}new Car = GetPlayerVehicleID(playerid);tmp = strtok(cmdtext, idx);if(!strlen(tmp)){SendClientMessage(playerid, COLOR_GRAD1, "Prime: /pr(opse)sex [playerid/PartOfName]");return 1;}//giveplayerid = strval(tmp);giveplayerid = ReturnUser(tmp);tmp = strtok(cmdtext, idx);if(IsPlayerConnected(giveplayerid)){if(giveplayerid != INVALID_PLAYER_ID){if (ProxDetectorS(8.0, playerid, giveplayerid)){if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "* Вы не можете заниматься сексом с собой."); return 1; }if(IsPlayerInAnyVehicle(playerid) && IsPlayerInVehicle(giveplayerid, Car) || PlayerInfo[playerid][pMarriedTo] == giveplayerid){GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));GetPlayerName(playerid, sendername, sizeof(sendername));if(PlayerInfo[playerid][pSex] == 1){format(string, sizeof(string), "* Вы занялись сексом с вашей женой.");SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);}if(PlayerInfo[playerid][pSex] == 2){format(string, sizeof(string), "* Вы занялись сексом с вашим мужем.");SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);}if(PlayerInfo[playerid][pSex] == 1){format(string, sizeof(string), " занялся сексом с женой.");Action(playerid, string);}else{format(string, sizeof(string), " занялась сексом с мужем.");Action(playerid, string);format(string, sizeof(string), " получает оргазм.", sendername);Action(playerid, string);}}else{SendClientMessage(playerid, COLOR_GREY, "Вы и другой игрок должны быть в одном автомобиле.");return 1;}}else{SendClientMessage(playerid, COLOR_GREY, "Этот игрок не рядом с вами!");return 1;}}}else{SendClientMessage(playerid, COLOR_GREY, "Игрок не в игре.");return 1;}}else{if(PlayerInfo[playerid][pSex] == 1){SendClientMessage(playerid, COLOR_GREY, "У вас нет жены!");}if(PlayerInfo[playerid][pSex] == 2){SendClientMessage(playerid, COLOR_GREY, "У вас нету мужа!");}}}//not connectedreturn 1;}Ко всем форвардам: forward Action(playerid, string[]);Ко всем пабликам: public Action(playerid, string[]){new sendername[MAX_PLAYER_NAME], action[256];GetPlayerName(playerid, sendername, sizeof(sendername));format(action, sizeof(action), "%s %s", sendername, string);ProxDetector(30.0, playerid, action, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 10000);}[/font]Для этого в моде должны быть следующие значения: pMarried Бонус: Дрочка и Проверка по Полу if(strcmp(cmd, "/дрочить", true) == 0 || strcmp(cmd, "/lhjxbnm", true) == 0){if(PlayerInfo[playerid][pSex] == 1)if(Drochit[playerid]==0){ApplyAnimation(playerid,"PAULNMAC","wank_loop",4.1,1,0,0,1,0);format(string, sizeof(string), "начинает дрочить.");Action(playerid, string);Drochit[playerid] = 1;}elseif(PlayerInfo[playerid][pSex] == 1)if(Drochit[playerid]==1){format(string, sizeof(string), "перестаёт дрочить.");Action(playerid, string);ClearAnimations(playerid);Drochit[playerid] = 0;}elseif(PlayerInfo[playerid][pSex] >= 2){SendClientMessage(playerid, COLOR_GREY, "Вы не можите дрочить, вы женщина!");}return 1;} Ко всем new: new Drochit[MAX_PLAYERS]; Что сделать:
  21. Rustyk

    Авторестарт

    Ко всем new добавим: new AUTORESTARTTIME = 5000;В OnPlayerCommandText добавим саму кмд: if(strcmp(cmd, "/arestart", true) == 0)//Команда { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_YELLOW, "Пиши: /arestart [время в секундах]"); format(string,sizeof(string),"Рестарт произойдет через %d секунд",AUTORESTARTTIME); SendClientMessage(playerid,COLOR_OOC,string); return 1; } new sec; sec = strval(tmp); if(PlayerInfo[playerid][pAdmin] >= 5)//лвл админа который сможет использовать эту команду { AUTORESTARTTIME = sec; format(string, sizeof(string), " Рестарт произойдет через %d секунд", sec); SendClientMessage(playerid, COLOR_DBLUE,string); } else { SendClientMessage(playerid, COLOR_GRAD1, "Вы не имеете права использовать эту команду!"); } } return 1; } Создадим новый паблик: public SetPlayerUnjail() { if(AUTORESTARTTIME > 0) { AUTORESTARTTIME --; if(AUTORESTARTTIME == 600) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 10 минут"); } else if(AUTORESTARTTIME == 300) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 5 минут"); } if(AUTORESTARTTIME == 240) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 4 минуты"); } if(AUTORESTARTTIME == 180) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 3 минуты"); } if(AUTORESTARTTIME == 120) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 2 минуты"); } if(AUTORESTARTTIME == 60) { SendClientMessageToAll(COLOR_GREEN,"До рестарта сервера 1 минута"); } if(AUTORESTARTTIME <=10) { format(string,sizeof(string)," До рестарта сервера %d секунд",AUTORESTARTTIME); SendClientMessageToAll(COLOR_GREEN,string); if(AUTORESTARTTIME == 0) { OnPropUpdate(); SaveCars(); SaveTrunk(); SaveStuff(); for(new i = 0; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { SavePlayer(i); //Сохраняет аккаунты на всякий [img=http://gsgames.ru/forum/public/style_emoticons/<#EMO_DIR#>/wink.gif] } } GameModeExitFunc(); //Делает сам рестарт } } } Автор неизвестен!
  22. Alexey_Ovchinnickov

    Прописка в г.Южный

    Здравствуйте Уважаемые пользователи gs games Я сегодня вам покажу,как сделать прописку в г.Южный он сделан для рпшности. Начнем! В enum pInfo добавим: pPropis, Далее в public OnPlayerConnect добавим: PlayerInfo[playerid][pPropis] = 0; Далее делаем сохранение в public OnPlayerRegister добавим format(var, 32, "Propis=%d\n",PlayerInfo[playerid][pPropis]);fwrite(hFile, var); Далее еще делаем сохранение в public OnPlayerUpdate добавим: format(var, 32, "Propis=%d\n",PlayerInfo[playerid][pPropis]);fwrite(hFile, var); Далее в public OnPlayerLogin добавляем: if( strcmp( key , "Propis" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPropis] = strval( val ); } Дальше создаем команду выдать прописку(пример для Полиции) if(strcmp(cmd, "/givepropis", true) == 0) { if(IsPlayerConnected(playerid)) { if(IsACop(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используйте: /givepropis [ид]"); if(PlayerInfo[giveplayerid][pPropis] != 1) return SendClientMessage(playerid, COLOR_RED, " У игрока уже есть прописка !"); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); format(string, sizeof(string), " Вы выдали %s прописку в г.Южный",giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), " Полицейский выдал вам прописку в г.Южный",sendername); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string); PlayerInfo[giveplayerid][pPropis] = 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Этого игрока нету на сервере !"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не полицейский !"); return 1; } } return 1; } Далее добавляем вторую команду для показа прописки. if(strcmp(cmd,"/showdoc",true)==0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "*???????: /showdoc [ID/????? ????]"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if (ProxDetectorS(2.0, playerid, giveplayerid)) { if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "*?? ?? ?????? ???????? ???????? ????, ??? ????? ??????????? '/licenses'"); return 1; } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new text1[20]; new text2[20]; new text3[20]; new text4[20]; new text5[20]; new text6[20]; if(PlayerInfo[playerid][pCarLic] == 1) { text1 = "????"; } else { text1 = "???????????"; } if(PlayerInfo[playerid][pFlyLic]) { text4 = "????"; } else { text4 = "???????????"; } if(PlayerInfo[playerid][pBoatLic]) { text2 = "????"; } else { text2 = "???????????"; } if(PlayerInfo[playerid][pFishLic]) { text3 = "????"; } else { text3 = "???????????"; } if(PlayerInfo[playerid][pGunLic]) { text5 = "????"; } else { text5 = "???????????"; } if(PlayerInfo[playerid][pPropis]) { text6 = "????"; } else { text6 = "???????????"; } format(string, sizeof(string), "|_________ ???????? %s__________|", sendername); SendClientMessage(giveplayerid, COLOR_WHITE, string); format(string, sizeof(string), "**???????? ?? ????????: %s", text1); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "**???????? ?? ??????: %s", text4); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "**???????? ?? ?????: %s", text2); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "**???????? ?? ???????: %s", text3); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "**???????? ?? ??????: %s", text5); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "**???????? ? ??? ???????: %s", text6); SendClientMessage(giveplayerid, COLOR_GREY, string); format(string, sizeof(string), "*%s ??????? ??? ???? ????????", sendername); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "*?? ???????? %s ???? ???????? ", giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); new ownedcar = PlayerInfo[playerid][pCar]; new namecar = GetVehicleModel(ownedcar)-400; if(ownedcar >= 1 && ownedcar <= 130) { format(string, sizeof(string), "*????? ????: [%d], ??? ????: [%s]", ownedcar, VehName[namecar]); SendClientMessage(giveplayerid, COLOR_GREY,string); } format(string, sizeof(string), "*%s ??????? %s ??????? ?????????.", sendername, giveplayer); ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } else { SendClientMessage(playerid, COLOR_GREY, "*????? ?????? ?? ???"); return 1; } } } else { SendClientMessage(playerid, COLOR_GREY, "*??? ?????? ??????"); return 1; } } return 1; } Вот и все Всем пока.
  23. Здравствуйте, уважаемые пользователи портала! У меня появился небольшой кусочек времени, поэтому я решил написать карсивооформленную команду /kick В чем преимущества? 1. Вывод всем игрокам сообщения о действии, вывод ника администратора, причины. 2. Текстдрав об успешном выполнении действия. 3. Запись в лог. Для корректной работы нам потребуется инклуд MxINI, а так же следующий дефайн: #define COLOR_DARK 0xBBBBBBAA Итак, начнем с самой команды: if(strcmp(cmdtext, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_DARK, "/kick [Ид игрока] [Причина]"); return 1; } giveplayerid = strval(tmp); if (PlayerInfo[playerid][pAdmin] >= 1) { 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)) { SendClientMessage(playerid, COLOR_DARK, "/kick [id игрока] [Причина]"); return 1; } new year, month,day; new hour, minute, second; getdate(year, month, day); gettime(hour, minute, second); format(string, sizeof(string), "[%d.%d.%d.][%d:%d:%d]%s кикнул %s, причина: %s",month,day,year,hour,minute,second,giveplayer, sendername, (result)); KickLog(string); format(string, sizeof(string), "%s кикнул %s, причина: %s ", giveplayer, sendername, (result)); SendClientMessageToAll(COLOR_RED, string); format(string, sizeof(string), "YCЊEЋмO!!!"); GameTextForPlayer(playerid, string, 900, 1); Kick(giveplayerid); return 1; } } } else { SendClientMessage(playerid, COLOR_DARK, "Неверный ИД."); } } return 1; } Далее требуется функция записи в лог. В любое место мода: stock KickLog(string[]) { new entry[256]; new iniFile = ini_openFile("log/kick.ini"); format(entry, sizeof(entry), "%sn",string); ini_setString(iniFile, entry, "true"); ini_closeFile(iniFile); } Вот и все! Удачи. Спасибо за внимание. Скрины:
  24. Представляю вам полную проверку ника на соответствие формату RolePlay серверов. Нельзя будет поставить ни цифру, ни символ, ни лишнюю большую букву (кроме нужных), нельзя будет название имени или фамилии написать с маленькой буквы или поставить более одного знака "_". Всё это может моя проверка. В начало OnPlayerConnect: new Symbol; new PlayerName[MAX_PLAYER_NAME+1]; GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); if(PlayerName[0] 'Z') return Kick(playerid); for(new A = 1; A { if(PlayerName[A] == '_') { if(Symbol == 1 || PlayerName[A+1] 'Z') return Kick(playerid); Symbol = 1; A += 2; continue; } if(PlayerName[A] 'z') return Kick(playerid); } if(!Symbol) return Kick(playerid);
  25. SHOROOP

    IPL->Pawn Converter

    Доброго дня, уважаемые пользователи. Для своих целей нужен был конвертер из нативного IPL-кода в Pawn-код - пришлось писать. Основная проблема в таком конверте - способ задания углов поворота. Движок Renderware использует кватернионы вместо углов Эйлера, что создает дополнительные трудности при конвертации. Однако - скрипт написан и работает. Заранее оговорюсь - писался скрипт для себя, посему он логирует все, что можно. Зачем это нужно? Если Вам удобнее заниматься маппингом не через MTA/SOE/etc., а через сингловые редакторы типа MEd или ipleditor - этот ФС для Вас. Если Вы используете модпаки - этот ФС для Вас. Больше нет необходимости держать IPL-файл в модпаке, что позволяет уменьшить расходы памяти на рендер карты. Ну и вообще, если Вам привычнее работать с IPL, но код нужен нативный - этот ФС для Вас. Исходник лежит на пастбине и использует sscanf для парсинга исходной строки. В scriptfiles необходимо забросить искомый ipl и файл converted.txt, в который будет помещен исходный код уже для Pawn. Имя искомого файла задается в директиве препроцессора #define. Сам ipl необходимо предварительно подготовить: нужно выбросить из него все служебные строки типа INST/CULL/etc. и оставить только строки с положением объектов, иначе строка спарсится криво и в код попадут строки с нулями вместо параметров.
×

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

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