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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Здравствуйте уважаемые пользователи форума. Хотел бы предоставить вам спидометр который я делал для мода Gamer. Вроде простенький, не знал что можно туда добавить и сделал такой. Кому нужно будет можете брать для себя.
  2. При вводе этой команды, на вашем плече появится попугай) Ко всем new добавим: new popugay[MAX_PLAYERS]; В OnPlayerCommandText: if(strcmp(cmd, "/попугай", true) == 0) { tmp = strtok(cmdtext,idx); giveplayerid = ReturnUser(tmp); if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] > 1) return SendClientMessage(playerid,COLOR_WHITE,"Информация: /попугай [ид]"); giveplayerid = ReturnUser(tmp); if(popugay[giveplayerid] == 0) { SetPlayerAttachedObject(giveplayerid, 7, 19078, 1, 0.329150, -0.072101, 0.156082, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,"[Сервер]: Держи попугайчика!"); popugay[giveplayerid] = 1; } else { RemovePlayerAttachedObject(giveplayerid, 7); DestroyPlayerObject(giveplayerid, 19078); SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,"[Сервер]: Отдай мне!"); popugay[giveplayerid] = 0; } return 1; } Вот и все, может кто-то возьмёт себе :)
  3. jaD^

    Поселок возле Арзамаса.

    http://vk.com/video117706941_168896323 собсна видео.
  4. TheJoker

    [Fs]hostname

    Выкладываю fs файл для смены названия http://yadi.sk/d/RfnQ6aBhRsBTL Что бы добавить новое создаем case 6,7,8,9 и т.д и добавляем в if (gChangeHN == число case) Что бы изменить время hostname нужно SetTimer("ChangeHostname",врямя,1) вписать время
  5. вадим2016

    возле депо

    машины не будет она ток на скрине.
  6. Здравствуйте, я часто сталкивался с тем, что люди спрашивают как заменить "Server Unknown Command" на свой текст, решение довольно простое: 1) Ищем у себя в моде public OnPlayerCommandText 2) И туда в самый низ паблика, ставим вместо return 0; вот это: return SendClientMessage(playerid,-1,"Такой команды нет!"); Может кому нибудь понадобится, взято с форумов.
  7. Komaroff 71

    MTA Map Editor или SA:MP Map Construction

    Добрый день,дамы и господа! Как вы уже поняли,речь пойдёт о наиболее популярных редакторов карт MTA Map Editor и SA:MP Map Construction. Многие начинающие мапперы стоят перед выбором:"Что же выбрать для работы?" Я опишу каждую из 2-х программ. Начнём с MTA Map Editor. По сути,это это лишь один из режимов приложения MTA.Рассмотрим поподробнее данный редактор. Плюсы: -Управление (имеет большое количество горячих клавиш) -Объекты разбиты на категории (очень легко найти нужную модель) -Хорошее передвижение камеры по карте Больше плюсов не увидел. Теперь о плохом.Минусов,к сожалению больше,чем плюсов. Минусы: -Точность (фанаты МТА,даже не пытайтесь оправдываться,с точностью до миллиметра установить объект крайне трудно) -Ненужное цветное выделение (ну это,думаю,ясно) -Невозможность использования новых объектов (например,0.3е объектов) -Невозможность выделения объектов стандартной карты -Крайне капризная программа (у многих пользователей постоянно возникают проблемы с установкой или запуском) Теперь поговорим о Map Construction(MC) Эта самостоятельная программа,зависящая лишь от самой игры (SA или CR) Рассмотрим достоинства. Плюсы: -Точность (гораздо точнее МТА) -Поддержка новых объектов -Возможность удаления объектов -Встроенный конвертер под стример -Выделение абсолютно любых объектов на карте Как видим,достоинств у МС больше,нежели у МТА. Минусы: -Управление (оно ужасное,если рассматривать использование горячих клавиш:нажал не на ту,и всё,камера улетает куда-то под карту,и вернуть её обратно не представляется возможным) -Выбор объектов (неудобно искать объекты,они не разделены никак,всё в одну кучу) Итак,сделаем вывод.По достоинствам выигрывает MC,и лично я советую работать с ним,нежели с Map Editor. В любом случае выбор за Вами.Ведь как говорится,на вкус и цвет товарища нет. Обе программы есть на данном форуме. На этой ноте я с Вами прощаюсь. Спасибо за внимание!
  8. Интерьер магазина одежды Online Role Play. Автор: L9mon Координаты тп: 334.4555, -152.0853, 999.7998
  9. Dsplay

    База армии.

    Делал базу давно,для своего проекта,находится она в Бусаево.
  10. #L9mon

    Склад пгт.Батырево.

    Склад пгт.Батырево. Автор: #L9mon
  11. Показываю как сделать бан на время с использованием Unix Времени + MxINI Бан работает так банишь игрока /ban [1-сек,2-мин,3-часы,4-дни] [ид] [число времени] [причина] пример /ban 2 1 10 проверка Если человек забанен и он заходит на сервер то ему вылазиет диалог когда он был забанен,когда разбанят,причина и потом кикает. Если бан закончится то аккаунт который забанен будет лежать в папке banlist пока игрок которого забанили зайдет снова на сервер. Важно: создать папку в scriptfiles с названием banlist Скачать инклуды можно тут ИНКЛУД (http://rghost.ru/35622578) Инклуды кидать в папку pawno->include, если есть то заменить. Время перевода с Unix на нормальное настроенно на московское В начало мода вставляем если нету #include <MxINI> #include <mxdate> // Для диалогов id меняйте на ваши свободные #define DIALOGUNBAN 1 // id дилога для высвечивания даты Это в свободное место stock GetBan(playerid) { new PlayerNick[MAX_PLAYER_NAME],string[255]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); format(string, sizeof(string), "banlist/%s.ini", PlayerNick); if(fexist(string)) { new OpenBan = ini_openFile(string); new bantime, unbantime, PlayerBan[MAX_PLAYER_NAME], reason[128]; ini_getInteger(OpenBan, "BanTime", bantime); ini_getInteger(OpenBan, "UnBanTime", unbantime); ini_getString(OpenBan, "PlayerBan", PlayerBan); ini_getString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); if(gettime() >= unbantime) return UnBan(PlayerNick); else { format(string, sizeof(string), "\ Дата бана: %s\n\ Дата Разбана: %s\n\ Забанил: %s\n\ Причина бана: %s\n\ ", date("%dd.%mm.%yyyy в %hh:%ii:%ss",bantime), date("%dd.%mm.%yyyy в %hh:%ii:%ss",unbantime), PlayerBan,reason); ShowPlayerDialog(playerid,DIALOGUNBAN,0,"Вы забанены",string,"Выйти",""); return Kick(playerid); } } else return true; } stock UnBan(playerid[]) { new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); return fremove(string); } stock AddBan(player, playerid[], giveplayerid[], type = 1, chislo = 0, reason[]) { new totalban = 0; switch(type) { case 1: totalban = 60*chislo; // минуты case 2: totalban = 3600*chislo; // часы case 3: totalban = 86400*chislo; // сутки default: totalban = chislo; // секунды } new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); new OpenBan = ini_createFile(string); if(OpenBan < 0) ini_openFile(string); ini_setInteger(OpenBan, "BanTime", gettime()); ini_setInteger(OpenBan, "UnBanTime", gettime()+totalban); ini_setString(OpenBan, "PlayerBan", giveplayerid); ini_setString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); // Закрываем файл. ShowPlayerDialog(player,DIALOGUNBAN,0,"Вы забанены","{FF0000}Вы забанены","Выйти",""); return Kick(player); } Далее вставляем в начало паблика OnPlayerConnect GetBan(playerid); Далее создадим саму команду бана (оптимизируйте под себя её) сделал под GF if(strcmp(cmd, "/ban", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new type = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new chislo = strval(tmp); if(PlayerInfo[playerid][pAdmin] >= 4) { if(giveplayerid != INVALID_PLAYER_ID) { 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, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); GetPlayerName(giveplayerid, PlayerBan, MAX_PLAYER_NAME); AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result); return true; }//not connected } return true; } Теперь создадим команду разбана ниже if(strcmp(cmd,"/unban",true)==0) { if(PlayerInfo[playerid][pAdmin] >= 8) { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GRAD1,"/unban [players nick]"); UnBan(tmp); } return true; } Автор:Lik Взято с павно портала
  12. Ко всем #define, если у кого небуть нету такого цвета #define COLOR_GREEN 0x33AA33AA Ко всем public В public OnPlayerCommandText(playerid, cmdtext[]){ new nxtlevel = PlayerInfo[playerid][pLevel]+1; new expamount = nxtlevel*levelexp; if (PlayerInfo[playerid][pExp] > expamount) { PlayerInfo[playerid][pLevel]++; PlayerInfo[playerid][pExp] = 1; SendClientMessage(playerid, COLOR_GREEN, "Ваш игровой лвл был автоматически повышен!"); return 1; } Друзья строго не судите! Может кому-то нужно) Автор-(Vlad_Andreev)
  13. Здравствуйте, ув.пользователи. Сегодня хотелось бы разобрать способ защиты от накрутки денег на Вашем игровом сервере. Теория: Как вы знаете, функция GivePlayerMoney существует для выдачи определенного количества денег. Разберем ее работу подробнее. Данная функция добавляет/отнимает числа от самого текстдрава денег. А функция же GetPlayerMoney возвращает данное значение. Исход из этого: байты могут быть заменены при помощи обычных программ, таких как ArtMoney и т.п. Что с этим можно сделать? Заменить байт на ПК пользователя труда не составит, а вот изменить переменную в процессе на сервере (удаленно) практически нереально. Я думаю, понятно, к чему я клоню. Практика: Создадим массив, который будет хранить кол-во денег отдельно для каждого игрока: new realmoney[MAX_PLAYERS]; Далее создадим функцию, по которой значение из GetPlayerMoney будет сверяться с переменной realmoney. В случае несоответствия - обнуление и кик: stock GiveMoneyAntiCheat(playerid, money) { if(GetPlayerMoney(playerid) > realmoney[playerid])//сверяем данные { //если чит, то: ResetPlayerMoney(playerid);// обнуляем GivePlayerMoney(playerid, realmoney[playerid]);//возвращаем SendClientMessage(playerid, 0xBBBBBBAA, "Вы были кикнуты за попытку накрутки денег."); Kick(playerid);//кикаем return 1; } else { //иначе выдаем все по стандарту: GivePlayerMoney(playerid, money); realmoney[playerid] = GetPlayerMoney(playerid); } return 1; } При дисконнекте игрока проверим деньги. Для этого в OnPlayerDisconnect достаточно поставить проверку и вызвать функцию: if(GetPlayerMoney(playerid) > realmoney[playerid]) { GiveMoneyAntiCheat(playerid, PlayerInfo[playerid][pMoney]); } Естественно, теперь все GivePlayerMoney нужно заменить на GiveMoneyAntiCheat. Спасибо.
  14. 1. Для начала создадим диалоги. В Public OnDialogResponse: if(dialogid==5100) { if(response==1) { if(listitem == 0)// { SetPlayerSkin(playerid,280);// 280 ид рабочего скина SendClientMessage(playerid,COLOR_GREY,"Вы переоделись в рабочую одежду"); skrit[playerid] = 1; } else if(listitem == 1)//Гражданский { new rando = random(2); if(PlayerInfo[playerid][pSex] == 1)//Если пэд. мужчина то скины 185 170 46 { if(rando == 0) { SetPlayerSkin(playerid,185); } else if(rando == 1) { SetPlayerSkin(playerid,170); } else if(rando == 2) { SetPlayerSkin(playerid,46); } } else if(PlayerInfo[playerid][pSex] == 2)//Если пэд. женщина то скины 12 233 211 { if(rando == 0) { SetPlayerSkin(playerid,12); } else if(rando == 1) { SetPlayerSkin(playerid,233); } else if(rando == 2) { SetPlayerSkin(playerid,211); } } SendClientMessage(playerid,COLOR_GREY,"Вы оделись в Гражданку"); skrit[playerid] = 4; } else if(listitem == 4)//Номер строчки в файле с аккаунтом в которой указывается ид скина пэда { SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]); SendClientMessage(playerid,COLOR_GREY,"Вы вернули себе свою одежду"); skrit[playerid] = 0; } } } 2. Далее нужно создать комманду которая будет вызывать наш диалог. В Public OnPlayerCommandText: if(strcmp(cmd, "/razdevpolic", true) == 0)// Комманду можете поменять на свою. Фантазии не хватило сократить) { if(PlayerToPoint(7.0,playerid,1554.4327,-1679.6113,6.2188,276.4227))//Координаты на которых будет работать комманда (если отойти от неё комманда не заработает) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)//Здесь указывается какая фракция может использовать комманду { ShowPlayerDialog(playerid,5100,DIALOG_STYLE_LIST,"Одежда","Полиция\nГражданский\nВернуть свой","Ок","Отмена"); } } else { SendClientMessage(playerid,COLOR_GREY, "Вы не в раздевалке"); } return 1; } 3. Ну и создадим 3dText (если хотите можете сделать через пикап). Ко всем 3DText-ам: Create3DTextLabel(" Раздевалка: /razdevpolic ",0xFFFFFFFF,1554.4327,-1679.6113,6.2188,276.4227); AddStaticPickup(1242, 24, 1554.4327,-1679.6113,6.2188,276.4227); //пикапчик в виде броника Автор : HuKuTJKeEe
  15. Доброго времени суток. Опять от безделья чтото да наколякал :) Крч новый подгон. Управление коордами. И так ид сторон : 0 : Вверх 1 : Вниз 2 : Влево 3 : Вправо. И так суть команды : Вы можете перемещать любого игрока на своё расстояние. Начнём команду вписывать в мод : Создаём #forward : #forward SetPlayerConsumPosition(playerid, using, typeid); Далее вставляем саму команду в public OnPlayerCommandTex() Для sscanf'щиков :) : if(strcmp(cmd, "/setpos", true) == 0) { if(!IsPlayerConnected(playerid)) return true; //if(Player[playerid][pAdmin] < 3) return true; // Проверка на админку if(sscanf(params, "iii", params[0],params[1],params[2])) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]"); return SetPlayerConsumPosition(params[0],params[1],params[2]); } Для простых процессеров : if(strcmp(cmd, "/setpos", true) == 0) { new TYPE[3]; cmd = strtok(cmdtext, idx); if(!IsPlayerConnected(playerid)) return true; if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]"); TYPE[0] = strval(cmd); cmd = strtok(cmdtext, idx); if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]"); TYPE[1] = strval(cmd); cmd = strtok(cmdtext, idx); if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]"); TYPE[2] = strval(cmd); return SetPlayerConsumPosition(TYPE[0],TYPE[1],TYPE[2]); } И в конец мода создай сток и кэллбек : public SetPlayerConsumPosition(playerid,using,typeid) { new Float:POS[3] ,str[50], string[128]; GetPlayerPos(playerid,POS[0],POS[1],POS[2]); // Узнаём координаты. switch(using) { case 0: SetPlayerPos(playerid, POS[0], POS[1], POS[2]+typeid), str = ("вверх"); // Суммируем полученные координаты case 1: SetPlayerPos(playerid, POS[0], POS[1], POS[2]-typeid), str = ("ввниз"); // Суммируем полученные координаты case 2: SetPlayerPos(playerid, POS[0], POS[1]-typeid, POS[2]), str = ("влево"); // Суммируем полученные координаты case 3: SetPlayerPos(playerid, POS[0], POS[1]+typeid, POS[2]), str = ("вправо"); // Суммируем полученные координаты } format(string,128,"- %s был перемешенны на %i %s",GetPlayerNameEx(playerid),typeid,str); return SendClientMessage(playerid,-1,string); } И сток для определения имён : stock GetPlayerNameEx(playerid) { new pname[MAX_PLAYER_NAME]; new i; GetPlayerName(playerid,pname,sizeof(pname)); GPNXLABEL: i = strfind(pname,"_",true); if(i != (-1)) pname[i] = ' '; if(strfind(pname,"_",true)>-1)goto GPNXLABEL; return pname; } Вот и всё. Автор : Trateus
  16. Здравствуйте дорогие пользователи портала GSG. Я рад видеть вас в моей теме. В данном уроке я хочу вам продемонстрировать, как добавить свою музыку при входе на сервер. То есть что бы играла музыка не с радио, а играла своя музыка. Сразу говорю, делается всё это просто. Для начала на понадобиться любой хостинг сайтов, могу предложить Ucoz, если у вас нет денег на платных хостинг. После того как вы создали сайт на Ucoz, мы загружаем в "Файловый менеджер" сам трек. После того как вы загрузили трек, идём например по URL: http//:moy-sait.ucoz.ru/Vhod.mp3. !!!Внимание!!! Главное нужно что бы формат файла был .mp3. Если будет примерно вот так: http//:moy-sait.ucoz.ru/Vhod/, то трек не воспроизведётся. С этим разобрались. Перейдём к моду. В public OnPlayerConnect: switch(random(1)) { case 0: PlayAudioStreamForPlayer(playerid,"http//:moy-sait.ucoz.ru/Vhod.mp3"); case 1: PlayAudioStreamForPlayer(playerid,"http//:moy-sait.ucoz.ru/Vhod.mp3"); } Видим строчку switch(random(1)), видим цифру 1. Данное число должно равняться последней строчки. URL меняем на свои. В public OnPlayerSpawn: StopAudioStreamForPlayer(playerid); Ну вот и всё. Огромное спасибо за внимание!
  17. Выкладываю скрипт военного билета, знаю он уже есть, но не полный. (В этом добавлена кмд showbil и без вб в гос.службы принять человека невозможно). Начнем: В enum pInfo добавить: pArmBil, В public OnPlayerConnect добавить: PlayerInfo[playerid][pArmBil] = 0; Теперь добавим в public OnPlayerRegister format(var, 64, "ArmBil=%d\n",PlayerInfo[playerid][pArmBil]);fwrite(hFile, var); Еще добавим в public OnPlayerUpdate вот это: format(var, 64, "ArmBil=%d\n",PlayerInfo[playerid][pArmBil]);fwrite(hFile, var); В public OnPlayerLogin добавим if( strcmp( key , "ArmBil" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pArmBil] = strval( val ); } И добавляем 2 команды в public OnPlayerCommandText if(strcmp(cmd, "/givebil", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "/givebil [id игрока]"); return 1; } giveplayerid = ReturnUser(tmp); 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), "Вам выдали военный билет."); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string); PlayerInfo[giveplayerid][pArmBil] = 1; return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "Игрок оффлайн."); return 1; } } return 1; } И туда же вторую команду в public OnPlayerCommandText добавляем вот это if(strcmp(cmd, "/showbil", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_ISPOLZUY,"* ИНФО: /showbil [ид игрока]"); new target = strval(tmp); new texts1[120]; if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOR_GREY, "* Этот игрок оффлайн"); if(GetDistanceBetweenPlayers(playerid,target) > 2) return SendClientMessage(playerid, COLOR_GREY, "* Нет ни кого рядом"); if(PlayerInfo[playerid][pArmBil]) { texts1 = "Военная Служба Пройдена"; } else { texts1 = "Военная Служба Не Пройдена"; } GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(target, giveplayer, sizeof(giveplayer)); format(string, sizeof(string), "Военный Билет %s: %s",sendername, texts1); ShowPlayerDialog(target,7588,DIALOG_STYLE_MSGBOX,"Военный Билет",string,"Ок","Ок"); format(string, sizeof(string), "* %s показывает свой военный билет %s", sendername,giveplayer); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } return 1; } Автор: Fedya На этом всё, надеюсь вам пригодится (особенно новичкам)!
  18. #L9mon

    Интерьер магазина '24/7'

    Интерьер магазина '24/7' Делал давно для одного проекта, так и не был задействован. Автор: L9mon
  19. Доброго времени суток форумчане. Вот от скукоты решил сделать небольшую команду. В самое начало добавим форвард forward SetPlayerSlap(playerid,typeid); Для тех у кого стоит sscanf : В public OnPlayerCommandText if(strcmp(cmd, "/slap", true) == 0) { if(!IsPlayerConnected(playerid)) return true; if(sscanf(params, "ii", params[0],params[1])) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Высота]"); if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,-1,"Данный игрок не подключен."); return SetPlayerSlap(params[0],params[1]); } Для тех у кого utils : В public OnPlayerCommandText if(strcmp(cmd, "/slap", true) == 0) { new type[2]; if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Ошибка команды : Введите [ID][Высота]"); type[0] = strval(strtok(cmdtext, idx)); type[1] = strval(strtok(cmdtext, idx)); if(!IsPlayerConnected(playerid)) return true; if(!IsPlayerConnected(player)) return true; return SetPlayerSlap(type[0],type[1]); } В конец мода ставим этот паблик: public SetPlayerSlap(playerid,typeid) { new Float:sPOS[3]; new str[128]; GetPlayerPos(playerid, sPOS[0], sPOS[1], sPOS[2]); SetPlayerPos(playerid, sPOS[0], sPOS[1], sPOS[2]+typeid); format(str,128,"Игрок %s был слэпнут на расстояние %i метров вверх",GetPlayerNameEx(playerid),typeid); SendClientMessageToAll(-1,str); return true; } Добавим ещё определение имён : stock GetPlayerNameEx(playerid) { new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname)); new i; GPNXLABEL: i = strfind(pname,"_",true); if(i != (-1)) pname[i] = ' '; if(strfind(pname,"_",true)>-1)goto GPNXLABEL; return pname; } На этом всё. Автор : Trateus.
  20. Доброго времени суток. Сегодня я выложу один из моих спидометров. Дело в том что я его делал для моего проекта(New Liberty Life) ,но потом перешёл в другой проект UA RP. Поэтому я его выкладываю ,так как буду делать всё равно другой Чтобы скачать нажмите сюда
×

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

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