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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Добрый вечер уважаемые Форумчане! Очень заинтересовался одним вопросом можно ли как то сделать чтобы мой сервер загружался не с клиента а прямо без поиска серверов и без ввода ип?
  2. Помогите перенести Спидометр с Filterscript в сам мод, просто объясните куда что вставлять=) Вот ссылка на сам файл: http://rghost.ru/42851908
  3. У меня в моде не работает каманда выдачи лидерки:if (strcmp(cmd, "/лидерка", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strcharsplit(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_YELLOW, "Подсказка: /лидерка [playerid] [id]"); return true; } new para1; new level; new szName[32]; GetPlayerName(playerid,szName,32); para1 = strval(tmp); tmp = strcharsplit(cmdtext, idx); level = strval(tmp); if(!strcmp(szName,"Vitaly_Gold",true)||!strcmp(szName,"Maksim_Orlov",true)||!strcmp(szName,"Andrey_Portnov",true)) { if(level > 15 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "Такой фракции нет только от 0, до 16!"); return true; } if(PlayerInfo[playerid][pAdmin] >= 6) //Лвл администратора { if(PlayerInfo[para1][pLevel] == 3) { if (dostup[playerid] != 1) { ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Доступ администратора","Введите пароль от административной панели","Ок","Отмена"); return true; } if(IsPlayerConnected(para1)) { if(para1 != INVALID_PLAYER_ID) { //if(PlayerInfo[para1][pLevel] == 3) //{ if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255) { SendClientMessage(playerid, COLOR_YELLOW, "*Этот игрок уже состоит во фракции!"); return true; } GetPlayerName(para1, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerInfo[para1][pLeader] = level; format(string, sizeof(string), "* Вам была выдана фракция! Админом %s", sendername); SendClientMessage(para1, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Вы выдали фракцию %s %d.", giveplayer,level); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); if(level == 0) { PlayerInfo[para1][pChar] = 0; } else if(level == 1) { PlayerInfo[para1][pChar] = 283; } //ГИБДД else if(level == 2) { PlayerInfo[para1][pChar] = 295; } //ФСБ else if(level == 3) { PlayerInfo[para1][pChar] = 287; } //Армия else if(level == 4) { PlayerInfo[para1][pChar] = 70; } //МЧС else if(level == 5) { PlayerInfo[para1][pChar] = 123; } //La Cosa Nostra //else if(level == 6) { PlayerInfo[para1][pChar] = 260; } //РЖД else if(level == 6) { PlayerInfo[para1][pChar] = 147; } //Правительство else if(level == 7) { PlayerInfo[para1][pChar] = 165; } //Киллеры else if(level == 8) { PlayerInfo[para1][pChar] = 187; } //Репортёр else if(level == 9) { PlayerInfo[para1][pChar] = 253; } //ТМК Вояж else if(level == 10) { PlayerInfo[para1][pChar] = 171; } //Лицензеры Г.Южного else if(level == 11) { PlayerInfo[para1][pChar] = 96; }//Итальянская Мафия else if(level == 12) { PlayerInfo[para1][pChar] = 127; }//РМ else if(level == 13) { PlayerInfo[para1][pChar] = 277; }//мчс else if(level == 14) { PlayerInfo[para1][pChar] = 102; }//ГП else if(level == 15) { PlayerInfo[para1][pChar] = 249; }//стрит gTeam[para1] = 11; PlayerInfo[para1][pTeam] = 11; SetPlayerSkin(para1, PlayerInfo[para1][pChar]); new message[256]; format(message,sizeof(message),"Игроку:%s Была вадана лидерка, Админом: %s Фракция под ид: %d",giveplayer,sendername,level); WriteLog("LidLog",message); } }//not connected } } else { SendClientMessage(playerid, COLOR_YELLOW, "У вас нет прав на использование команды"); } } else { SendClientMessage(playerid, COLOR_YELLOW, "Игрок не достиг 3LvL");//if(PlayerInfo[para1][pLevel] == 3) } } return true; } Не пойму что такое,я пытаюсь выдать лидерку на серве,пишу кмд ид ид-лидерки и нечего не происходит.Не пишет неизвестная команда и лидерку не выдает!Подскажите что делать...
  4. как исправить?? C:\Users\Ultimate\Desktop\GWP\gamemodes ruestreets.pwn(257) : fatal error 100: cannot read from file: "vehicle_03c" Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Error.
  5. Добрый день, у меня такая проблема: по вот этому уроку я изменял спавн новичков, и у меня персонаж при каждом заходе в игру проваливается в небытие, и + ко всему в чате варн появляется
  6. Smolin

    Вайп

    Подскажите как сделать вайп?
  7. Всем привет, столкнулся с проблемой, что когда я добавляю на сервер объекты свои, они нормально прогужаются, а вот которые объекты были в моде до этого - прогружаются на расстоянии 5 метров. Что делать? Убил кучу времени на постройку деревни - вот те на! настройка rate не помогла!
  8. Надо убрать из мода Гамер обьект броню. когда делаешь броню
  9. вот команда: if(IsPlayerConnected(para1)) .pwn(27137) : warning 217: loose indentation Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Warning.
  10. Подскажите плиз как зделать привязку к авто например к дальнабойщикам
  11. Здравствуйте! У меня при получении данных из MySQL, возникает проблема из-за которой сервер зависает(по server_log.txt): [19:03:18] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)" [19:03:18] [debug] Stack pointer (STK) is 0x1CAE8, heap pointer (HEA) is 0x1CB3C [19:03:18] [debug] AMX backtrace: [19:03:18] [debug] #0 ???????? in public OnDialogResponse () from mod.amx Как я понял, это происходит из-за того, что возникает переполнения стека. Вот код: new query[1024]; new sqlpass[64]; new result[2688]; new dialog[256]; printf("Loading account"); mysql_real_escape_string(password, sqlpass); format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `password` = '%s' AND `ID` = '%i'", sqlpass, playerVar[playerid][aID]); mysql_query(query); mysql_store_result(); if(mysql_num_rows() == 1) { mysql_fetch_row_format(result, "|"); sscanf(result, "p<|>is[32]s[32]s[16]iiis[16]iiis[64]s[32]iiiiiiis[64]iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", playerVar[playerid][aID], playerVar[playerid][aName], playerVar[playerid][aPassword], playerVar[playerid][aIp], playerVar[playerid][aDayreg], playerVar[playerid][aMonthreg], playerVar[playerid][aYearreg], playerVar[playerid][aIpreg], playerVar[playerid][aSex], playerVar[playerid][aModel], playerVar[playerid][aSkin], playerVar[playerid][aMail], playerVar[playerid][aDrug], playerVar[playerid][aDrugmoney], playerVar[playerid][aLevel], playerVar[playerid][aPassport], playerVar[playerid][aAge], playerVar[playerid][aExp], playerVar[playerid][aAdminlevel], playerVar[playerid][aHelperlevel], playerVar[playerid][aAdminkey], и т.д.Как я понял, это из-за длины переменной result[2688].Если сделать её слишком маленькой, запрос не влазит, и sscanf выдает переполнение result, если слишком большой, то крашит мод. Подскажите, как мне быть?
  12. У Меня на сервере стоит склад оружия у фракций.Когда я беру оружие он исчезает. А Как сделать что-бы он не исчезал,Подскажите пожалуйста!
  13. Подскажите пожалуйста, возможно ли на сервер добавить метропоезд? В одиночной версии игры метропоезд есть. Также, по возможности, подскажите пожалуйста ID противогаза в CRMP. Заранее спасибо.
  14. Какой лучши мод этат http://forum.gs-games.ru/topic/4245/ или этат http://forum.gs-games.ru/topic/3937/
  15. Помогите плиз не могу узнать пароль от адм панели,с меня +!!!!!!!!!!!!!!1
  16. Подскажите как у фракций поменять скины просто искал не могу найти смог заменить скины токо в /makeleader
  17. m0k

    Гараж

    CreateObject(5248,2417.19995117,-2476.30004883,-28.39999962,0.00000000,0.00000000,0.00000000); //object(lod_mexcrnershp) (1) CreateObject(5248,2431.80004883,-2473.00000000,-28.39999962,0.00000000,0.00000000,0.00000000); //object(lod_mexcrnershp) (2) CreateObject(3095,2425.00000000,-2475.60009766,-28.70000076,0.00000000,0.00000000,0.00000000); //object(a51_jetdoor) (1) CreateObject(3095,2425.00000000,-2484.60009766,-28.70000076,0.00000000,0.00000000,0.00000000); //object(a51_jetdoor) (2) CreateObject(5248,2417.19995117,-2486.00000000,-28.39999962,0.00000000,0.00000000,0.00000000); //object(lod_mexcrnershp) (3) CreateObject(5248,2424.60009766,-2494.19995117,-28.39999962,0.00000000,0.00000000,180.00000000); //object(lod_mexcrnershp) (4) CreateObject(5248,2431.80004883,-2483.60009766,-28.39999962,0.00000000,0.00000000,0.00000000); //object(lod_mexcrnershp) (5) CreateObject(5248,2424.80004883,-2471.80004883,-28.39999962,0.00000000,0.00000000,90.00000000); //object(lod_mexcrnershp) (6) CreateObject(3095,2425.10009766,-2486.19995117,-24.20000076,0.00000000,0.00000000,0.00000000); //object(a51_jetdoor) (3) CreateObject(3095,2424.30004883,-2478.19995117,-24.20000076,0.00000000,0.00000000,0.00000000); //object(a51_jetdoor) (4) CreateObject(1441,2426.39990234,-2476.30004883,-27.50000000,0.00000000,0.00000000,0.00000000); //object(dyn_box_pile_4) (1) CreateObject(1235,2424.69995117,-2476.00000000,-27.60000038,0.00000000,0.00000000,0.00000000); //object(wastebin) (1) CreateObject(2028,2423.00000000,-2476.00000000,-27.70000076,0.00000000,0.00000000,90.00000000); //object(swank_console) (1)
  18. Господа, Вашему вниманию предлагается скрипт тюнинг-ателье "ГопКар". Реализованы следующие возможности: [*]Ремонт автомобиля; [*]Перекраска автомобиля (с выбором цвета практически как в сингл-плеере); [*]Установка баллонов с закисью азота; [*]Установка колесных дисков; [*]Установка неоновой подсветки; [*]Установка сабвуфера и гидравлической подвески. Скрипт полностью отлажен и работает. Сохранение тюнинга не реализовано ввиду того, что систем авто - очень много, однако могу предложить свои услуги по встраиванию скрипта в Ваш мод. Также ввиду индивидуальных особенностей моделей автомобилей не реализована установка корпусных деталей, дабы не вызывало крэшей у игроков. Автор скрипта - SHOROOP (Alexander Gordon), автор выбора цвета - OKStyle (огромное спасибо за его работу и за скрипт, послуживший частичной основой для выбора цвета). GopCar.rar
  19. Новая команда выглядит таким образом: public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { return 1; } return 0; }strcmp – сравнивает два значения, в данном случае «/mycommand» с командой, которойигрок вводит в чат (cmdtext), cmdtext – это параметр в котором хранится текст команды, которую игрок ввел в чат. Значение true означает нечувствительность к регистру. Если мы напишем false, игрок должен будет соблюдать регистр букв при написании команды. Приведу пример простой команды с использованием оператора format из прошлого урока. if (strcmp("/afk", cmdtext, true, 10) == 0) { new pname[24],string[50]; GetPlayerName(playerid, pname, 24); format(string, sizeof(string), "-- %s Отошел от компьютера... ", pname); SendClientMessageToAll(0xFFFF00AA,string); return 1; }Тут все просто. Переходим к следующему уроку.. Автор Cloud
  20. ByMeR_OK

    Система Квартир

    Сегодня я расскажу как зделать систему квартир на сервере ищем в моде enum pInfoи выше вставляем enum fInfo { fOwned, fOwner[MAX_PLAYER_NAME], Float:fEntrancex, Float:fEntrancey, Float:fEntrancez, Float:fExitx, Float:fExity, Float:fExitz, fInt, fVirtWorld, fValue, fLock, fRent, fRentabil, fTakings, fDate, fLevel }; new FlatsInfo[27][fInfo]; new FlatPickup[sizeof(FlatsInfo)]; new Text3D: Flat3D[sizeof(FlatsInfo)]; new flathouse1[2]; new flathouse2[2]; new flathouse3[2];Потом идём в public SetPlayerSpawn и ищем там new house = PlayerInfo[playerid][pPhousekey];после этого вставляем new flat = PlayerInfo[playerid][pFlatKey];в этомже паблике немного ниже вставляем if(flat != 255) { if(SpawnChange[playerid]) //If 1, then you get to your house, else spawn somewhere else { SetPlayerToTeamColor(playerid); SetPlayerInterior(playerid,FlatsInfo[flat][fInt]); SetPlayerPos(playerid, FlatsInfo[flat][fExitx], FlatsInfo[flat][fExity],FlatsInfo[flat][fExitz]); // Warp the player SetPlayerVirtualWorld(playerid,flat+9999); return 1; } }теперь создадим stock stock UpdateFlat(idx) { new text[600]; if(FlatsInfo[idx][fOwned] == 0) { format(text,sizeof(text),"{FF6347} * Квартира * {FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nЦена: {7CFC00}%d{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\n\nЧтобы купить квартиру, введите {7CFC00}/buyflat{FFFFFF}",idx,FlatsInfo[idx][fValue],FlatsInfo[idx][fLevel]); Update3DTextLabelText(Flat3D[idx], 0xFFFFFFFF, text); DestroyPickup(FlatPickup[idx]); FlatPickup[idx] = CreatePickup(1273, 23, FlatsInfo[idx][fEntrancex], FlatsInfo[idx][fEntrancey], FlatsInfo[idx][fEntrancez], FlatsInfo[idx][fVirtWorld]); } else if(FlatsInfo[idx][fOwned] == 1) { format(text,sizeof(text),"{FF6347} * Квартира * {FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nВладелец: {7CFC00}%s",idx,FlatsInfo[idx][fOwner]); Update3DTextLabelText(Flat3D[idx], 0xFFFFFFFF, text); DestroyPickup(FlatPickup[idx]); FlatPickup[idx] = CreatePickup(1272, 23, FlatsInfo[idx][fEntrancex], FlatsInfo[idx][fEntrancey], FlatsInfo[idx][fEntrancez], FlatsInfo[idx][fVirtWorld]); } }теперь ищем public LoadPropertyи после встовляем public LoadFlats() { new arrCoords[17][64]; new strFromFile2[256]; new File: file = fopen("flats.cfg", io_read); if (file) { new idx; while (idx < sizeof(FlatsInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); FlatsInfo[idx][fOwned] = strval(arrCoords[0]); strmid(FlatsInfo[idx][fOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255); FlatsInfo[idx][fEntrancex] = floatstr(arrCoords[2]); FlatsInfo[idx][fEntrancey] = floatstr(arrCoords[3]); FlatsInfo[idx][fEntrancez] = floatstr(arrCoords[4]); FlatsInfo[idx][fExitx] = floatstr(arrCoords[5]); FlatsInfo[idx][fExity] = floatstr(arrCoords[6]); FlatsInfo[idx][fExitz] = floatstr(arrCoords[7]); FlatsInfo[idx][fInt] = strval(arrCoords[8]); FlatsInfo[idx][fVirtWorld] = strval(arrCoords[9]); FlatsInfo[idx][fValue] = strval(arrCoords[10]); FlatsInfo[idx][fLock] = strval(arrCoords[11]); FlatsInfo[idx][fRent] = strval(arrCoords[12]); FlatsInfo[idx][fRentabil] = strval(arrCoords[13]); FlatsInfo[idx][fTakings] = strval(arrCoords[14]); FlatsInfo[idx][fDate] = strval(arrCoords[15]); FlatsInfo[idx][fLevel] = strval(arrCoords[16]); printf("Квартира: [%d] | Владелец: [%s]",idx,FlatsInfo[idx][fOwner]); idx++; } fclose(file); } return 1; }После,в public OnGameModeInit после всех машин и т.д вы увидите вот такую надпись Дом продаётсяу всех по разному,ну что в этом духе,ну так вот после этого встовляем for(new f = 0; f < sizeof(FlatsInfo); f++) { new text[600]; if(FlatsInfo[f][fOwned] == 0) { format(text,sizeof(text),"{FF6347} * Квартира * {FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nЦена: {7CFC00}%d{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\n\nЧтобы купить квартиру, введите {7CFC00}/buyflat{FFFFFF}",f,FlatsInfo[f][fValue],FlatsInfo[f][fLevel]); Flat3D[f] = Create3DTextLabel(text,0xFFFFFFFF,FlatsInfo[f][fEntrancex], FlatsInfo[f][fEntrancey], FlatsInfo[f][fEntrancez]+1,10,FlatsInfo[f][fVirtWorld],1); FlatPickup[f] = CreatePickup(1272, 23, FlatsInfo[f][fEntrancex], FlatsInfo[f][fEntrancey], FlatsInfo[f][fEntrancez], FlatsInfo[f][fVirtWorld]); pickups++; } else if(FlatsInfo[f][fOwned] == 1) { format(text,sizeof(text),"{FF6347} * Квартира * {FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nВладелец: {7CFC00}%s",f,FlatsInfo[f][fOwner]); Flat3D[f] = Create3DTextLabel(text,0xFFFFFFFF,FlatsInfo[f][fEntrancex], FlatsInfo[f][fEntrancey], FlatsInfo[f][fEntrancez]+1,10,FlatsInfo[f][fVirtWorld],1); FlatPickup[f] = CreatePickup(1272, 23, FlatsInfo[f][fEntrancex], FlatsInfo[f][fEntrancey], FlatsInfo[f][fEntrancez], FlatsInfo[f][fVirtWorld]); pickups++; } }в public DateProp добавить сразу после } for(new h = 0; h < sizeof(FlatsInfo); h++) { if (strcmp(playername, FlatsInfo[h][fOwner], true) == 0) { FlatsInfo[h][fDate] = curdate; OnPropUpdate(); } }потом идём в public OnPropUpdate()и в конце будет Sbizz.cfg или Bizz.cfg у всех по разному,после этого встовляем idx = 0; while (idx < sizeof(FlatsInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%s,%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", FlatsInfo[idx][fOwned], FlatsInfo[idx][fOwner], FlatsInfo[idx][fEntrancex], FlatsInfo[idx][fEntrancey], FlatsInfo[idx][fEntrancez], FlatsInfo[idx][fExitx], FlatsInfo[idx][fExity], FlatsInfo[idx][fExitz], FlatsInfo[idx][fInt], FlatsInfo[idx][fVirtWorld], FlatsInfo[idx][fValue], FlatsInfo[idx][fLock], FlatsInfo[idx][fRent], FlatsInfo[idx][fRentabil], FlatsInfo[idx][fTakings], FlatsInfo[idx][fDate], FlatsInfo[idx][fLevel]); if(idx == 0) { file2 = fopen("flats.cfg", io_write); } else { file2 = fopen("flats.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); }Далее добавим команды в public OnPlayerCommandText: if(strcmp(cmd, "/flat", true) == 0) { GetPlayerName(playerid, playername, sizeof(playername)); if(PlayerInfo[playerid][pFlatKey] != 255 && strcmp(playername, FlatsInfo[PlayerInfo[playerid][pFlatKey]][fOwner], true) == 0) { ShowPlayerDialog(playerid,50,DIALOG_STYLE_LIST,"Квартира"," - Открыть/Закрыть\n - Продать","Далее","Выход"); } else { SendClientMessage(playerid,COLOR_GREY, "Ошибка: У вас нет квартиры."); return 1; } } if(strcmp(cmd, "/sellflat", true) == 0) { if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, playername, sizeof(playername)); if(PlayerInfo[playerid][pFlatKey] == 255) { SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас нет квартиры."); return 1; } if(PlayerInfo[playerid][pFlatKey] != 255 && strcmp(playername, FlatsInfo[PlayerInfo[playerid][pFlatKey]][fOwner], true) == 0) { new flat = PlayerInfo[playerid][pFlatKey]; FlatsInfo[flat][fLock] = 1; FlatsInfo[flat][fOwned] = 0; GetPlayerName(playerid, sendername, sizeof(sendername)); strmid(FlatsInfo[flat][fOwner], "-", 0, strlen("-"), 255); GivePlayerMoney(playerid,FlatsInfo[flat][fValue]); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); format(string, sizeof(string), "~w~Congratulations~n~ You have sold your property for ~n~~g~$%d", FlatsInfo[flat][fValue]); GameTextForPlayer(playerid, string, 10000, 3); PlayerInfo[playerid][pFlatKey] = 255; //OnPlayerSave(playerid); UpdateFlat(flat); return 1; } else { SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас нет квартиры."); return 1; } } return 1; } if(strcmp(cmd, "/buyflat", true) == 0) { if(IsPlayerConnected(playerid)) { new Float:oldposx, Float:oldposy, Float:oldposz; GetPlayerName(playerid, playername, sizeof(playername)); GetPlayerPos(playerid, oldposx, oldposy, oldposz); for(new h = 0; h < sizeof(FlatsInfo); h++) { if(PlayerToPoint(2.0, playerid, FlatsInfo[h][fEntrancex], FlatsInfo[h][fEntrancey], FlatsInfo[h][fEntrancez]) && FlatsInfo[h][fOwned] == 0 && GetPlayerVirtualWorld(playerid) == FlatsInfo[h][fVirtWorld]) { if(PlayerInfo[playerid][pLevel] < FlatsInfo[h][fLevel]) { format(string, sizeof(string), "Ошибка: Вам нужен %d уровень, чтобы купить эту квартиру.", FlatsInfo[h][fLevel]); SendClientMessage(playerid, COLOR_GRAD5, string); return 1; } if((PlayerInfo[playerid][pPhousekey] != 255 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0) || (PlayerInfo[playerid][pFlatKey] != 255 && strcmp(playername, FlatsInfo[PlayerInfo[playerid][pFlatKey]][fOwner], true) == 0)) { SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас уже есть дом / квартира."); return 1; } if(GetPlayerMoney(playerid) > FlatsInfo[h][fValue]) { PlayerInfo[playerid][pFlatKey] = h; FlatsInfo[h][fOwned] = 1; GetPlayerName(playerid, sendername, sizeof(sendername)); strmid(FlatsInfo[h][fOwner], sendername, 0, strlen(sendername), 255); GivePlayerMoney(playerid,-FlatsInfo[h][fValue]); PlayerPlayMusic(playerid); SetPlayerInterior(playerid,FlatsInfo[h][fInt]); SetPlayerVirtualWorld(playerid,h+9999); SetPlayerPos(playerid,FlatsInfo[h][fExitx],FlatsInfo[h][fExity],FlatsInfo[h][fExitz]); GameTextForPlayer(playerid, "~w~Welcome Flat~n~You can exit at any time by moving to this door and typing /exit", 5000, 3); PlayerInfo[playerid][pInt] = FlatsInfo[h][fInt]; SendClientMessage(playerid, COLOR_WHITE, "Вы купили квартиру!"); SendClientMessage(playerid, COLOR_WHITE, "Используйте /flat для управления ею!"); DateProp(playerid); //OnPlayerSave(playerid); UpdateFlat(h); return 1; } else { SendClientMessage(playerid, COLOR_WHITE, "Ошибка: У вас не хватает денег!"); return 1; } } } } return 1; }После ищем команду /enter и встовляем в неё for(new i = 0; i < sizeof(FlatsInfo); i++) { if (PlayerToPoint(3, playerid,FlatsInfo[i][fEntrancex], FlatsInfo[i][fEntrancey], FlatsInfo[i][fEntrancez]) && GetPlayerVirtualWorld(playerid) == FlatsInfo[i][fVirtWorld]) { //printf("Found House :%d",i); if(PlayerInfo[playerid][pFlatKey] == i || FlatsInfo[i][fLock] == 0) { SetPlayerVirtualWorld(playerid,i+9999); SetPlayerInterior(playerid,FlatsInfo[i][fInt]); SetPlayerPos(playerid,FlatsInfo[i][fExitx],FlatsInfo[i][fExity],FlatsInfo[i][fExitz]); GameTextForPlayer(playerid, "~w~Welcome Kvartira", 5000, 1); PlayerInfo[playerid][pInt] = FlatsInfo[i][fInt]; } else { GameTextForPlayer(playerid, "~r~Locked", 5000, 1); } } }После ищем команду /exit и встовляем туда for(new i = 0; i < sizeof(FlatsInfo); i++) { if(GetPlayerVirtualWorld(playerid) == i+9999) { if (PlayerToPoint(3, playerid,FlatsInfo[i][fExitx], FlatsInfo[i][fExity], FlatsInfo[i][fExitz])) { SetPlayerInterior(playerid,3); SetPlayerVirtualWorld(playerid,FlatsInfo[i][fVirtWorld]); SetPlayerPos(playerid,FlatsInfo[i][fEntrancex],FlatsInfo[i][fEntrancey],FlatsInfo[i][fEntrancez]); } } }Потом в public OnDialogResponse добавим if(dialogid == 50) { if(response) { if(listitem == 0) { for(new i = 0; i < sizeof(FlatsInfo); i++) { if ((PlayerToPoint(3, playerid,FlatsInfo[i][fEntrancex], FlatsInfo[i][fEntrancey], FlatsInfo[i][fEntrancez]) && GetPlayerVirtualWorld(playerid) == FlatsInfo[i][fVirtWorld]) || (PlayerToPoint(3, playerid,FlatsInfo[i][fExitx], FlatsInfo[i][fExity], FlatsInfo[i][fExitz]) && GetPlayerVirtualWorld(playerid) == i+9999)) { if(PlayerInfo[playerid][pFlatKey] == i) { if(FlatsInfo[i][fLock] == 1) { FlatsInfo[i][fLock] = 0; SendClientMessage(playerid, COLOR_WHITE, "Квартира открыта"); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); return 1; } if(FlatsInfo[i][fLock] == 0) { FlatsInfo[i][fLock] = 1; SendClientMessage(playerid, COLOR_WHITE, "Квартира закрыта"); PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "Это не ваша квартира."); return 1; } } } } else if(listitem == 1) { OnPlayerCommandText(playerid, "/sellflat"); } } else { return 1; } }Потом в public OnPlayerPickUpPickup(playerid, pickupid) добавить if(pickupid == flathouse1[0]) // Квартирный Дом напротив Репортеров (Вход) { SetPlayerPos(playerid, 972.3107,-8.6146,1001.1484); SetPlayerInterior(playerid, 3); PlayerInfo[playerid][pInt] = 3; SetPlayerVirtualWorld(playerid,1); } else if(pickupid == flathouse1[1]) // Квартирный Дом напротив Репортеров (Выход) { SetPlayerPos(playerid, -1966.0192,434.3174,35.1719); SetPlayerInterior(playerid, 0); PlayerInfo[playerid][pInt] = 0; SetPlayerVirtualWorld(playerid,0); } else if(pickupid == flathouse2[0]) // Квартирный Дом напротив Небоскрёпа ЛС (Вход) { SetPlayerPos(playerid, 972.3107,-8.6146,1001.1484); SetPlayerInterior(playerid, 3); PlayerInfo[playerid][pInt] = 3; SetPlayerVirtualWorld(playerid,2); } else if(pickupid == flathouse2[1]) // Квартирный Дом напротив Небоскрёпа ЛС (Выход) { SetPlayerPos(playerid, 329.7834,-1513.7047,36.0391); SetPlayerInterior(playerid, 0); PlayerInfo[playerid][pInt] = 0; SetPlayerVirtualWorld(playerid,0); } else if(pickupid == flathouse3[0]) // Квартирный Дом у Банка ЛС (Вход) { SetPlayerPos(playerid, 972.3107,-8.6146,1001.1484); SetPlayerInterior(playerid, 3); PlayerInfo[playerid][pInt] = 3; SetPlayerVirtualWorld(playerid,3); } else if(pickupid == flathouse3[1]) // Квартирный Дом у Банка ЛС (Выход) { SetPlayerPos(playerid, 1378.8137,-1088.7667,27.0466); SetPlayerInterior(playerid, 0); PlayerInfo[playerid][pInt] = 0; SetPlayerVirtualWorld(playerid,0); }Потом добавим пикапы: flathouse1[0] = CreatePickup(1318, 2, -1962.0586,434.1953,35.1719, 0); pickups++; // Квартирный Дом напротив Репортеров (Вход) flathouse1[1] = CreatePickup(1318, 2, 975.1188,-8.6426,1001.1484, 1); pickups++; // Квартирный Дом напротив Репортеров (Выход) flathouse2[0] = CreatePickup(1318, 2, 328.1443,-1512.3280,36.0325, 0); pickups++; // Квартирный Дом напротив Небоскрёпа ЛС (Вход) flathouse2[1] = CreatePickup(1318, 2, 975.1188,-8.6426,1001.1484, 2); pickups++; // Квартирный Дом напротив Небоскрёпа ЛС (Выход) flathouse3[0] = CreatePickup(1318, 2, 1382.1489,-1088.8043,28.2124, 0); pickups++; // Квартирный Дом у Банка ЛС (Вход) flathouse3[1] = CreatePickup(1318, 2, 975.1188,-8.6426,1001.1484, 3); pickups++; // Квартирный Дом у Банка ЛС (Выход)Чуть не забыл ко всем форвардам добавить forward LoadFlats();и в Public OnGameModeInit добавить LoadFlats();После в enum pInfo добавить pFlatKey,Потом в public OnPlayerRegister(playerid, password[]) dini_IntSet(string, "Flatkey", PlayerInfo[playerid][pFlatKey]);После в public OnPlayerLogin PlayerInfo[playerid][pFlatKey] = dini_Int(string2,"Flatkey");немного ниже в этомже паблике добавить PlayerInfo[playerid][pFlatKey] = 255;и под конец в public OnPlayerConnect добавить PlayerInfo[playerid][pFlatKey] = 255;вот и всё ))Автор Вырезки: Mr_Dave Вырезано из мода Diamond_City Может кому пригодится И вот сам файл с квартирками =) flats.cfg
  21. Итак, в этом уроке вы научитесь делать карты в MTA. Для начала скачаем саму MTA и установим: http://zebra.og-serv...mtasa-1.0.5.exe В установке MTA нет ничего сложного. После установки запускаем её и ждём окончания загрузки. Может выскочить окошко, что нужно обновление, отказываемся. Слева видим пункты меню и тыкаем на "Map Editor". Ждём когда загрузится. После загрузки появится окошко с предложением обучения. Нажимаем "Skip" (то есть пропустить). Начнём работу. Управляем камерой мышкой + кнопки W, A, S, D. Чтобы быстро лететь, удерживая пробел и кнопки полёта. Чтобы медленно лететь Alt и кнопки полёта. Устанавливаем камеру на какое-нибудь положение и нажимаем кнопку F. Сверху по-середине и слева внизу появились кнопки. Чтобы поставить объект, кликаем мышкой на кнопку и рисунком коробки. Мы переключимся в режим выбирания объекта. Слева список объектов. Всех объектов! Так дело не пойдёт, вверху открываем список категорий и выбираем нужную. Чтобы посмотреть на объект, кликаем один раз по названию объекта. Чтобы его выбрать - два раза. Если вы передумали ставить объект, внизу есть кнопка "Canel". А теперь, попробуем поставить какой-нибудь объект. Кликаем два раза на название и видем, что мышка взяла объект, как собачка свою косточку и таскает за собой. Мышкой точное положение объекта врядли с первого раза поставишь. Так вот, выбираем примерное положение на кликаем левой кнопкой мыши один раз. Теперь можно двигать объект клавишами-стрелками. Чтобы быстро его двигать пробел + стрелки. Чтобы медленно Alt + стрелки. Чтобы повернуть объект, Ctrl + стрелки влево-вправо. Чтобы изменить другой угол Ctrl + стрелки вверх вниз. А вот чтобы изменить высоту, в MTA сочитания клавиш нет, так что кликаем два раза на объект и сами подбираем нужную высоту (координата Z). Чтобы клонировать объект Ctrl + клик по объекту. Чтобы удалить - клавиша Delete. После установки первого объекта, ставим второй. Опять открываем список, выбираем нужный объект, подгоняем координаты. Может вы поставили такой маленький объект, что курсор его не видет? Нажимаем на клавишу E (русск. "у"). Выключается так же. Теперь как ставить тачки. Ответ: почти так же, как и объекты, просто выбираем другой пунк в меню (который внизу слева) на которой нарисована машина. И так же выбираем категорию, потом так же ставим. Мышкой ставить тачку проще, чем объект. Но координату угла Y советую не менять, так как в сампе её нету. Чтобы перейти в режим теста, нажмите на клавишу F5. После того, как вы на грув (я так думаю ) поставили объекты и транспорт, сохраняем нашу первую созданную карту. Для этого переходим в фиксированное положение камеры и нажимаем на верхней панели кнопку с дискетой. Набираем название, сохраняем. А теперь самое интересное. Конвентирование объектов в самп. Заходим в папку с МТА в папки: \server\mods\deathmatch\resources\"название вашей сохранённой карты". Теперь открываем файл с расширением ".map", который там находится, блокнотом. Выделяем всё (Ctrl+a) и копируем (Ctrl+C). Заходим на сайт http://www.convertffs.com/ и в "Paste here" вставляем то что вы скопировали из файла map. Настройки input установятся автоматически, а вот Output надо немножко поднастроить. Это зависит от стримера. Если никого нет - CreateObject. Для машин AddStaticVehicle. Потом нажимаем на кнопку "Convert" и получившийся код вставляем в мод/фильтскрипт (паблик OnGameModeInit). Вот и весь урок. Желаю удачи в создании карт! Автор урока -EvgeN 1137. Если будут вопросы - задавайте сюда.
  22. Mr.Brain

    Создание Бинда В Pawno

    Здравствуйте, в этом уроке будет описано, как сделать бинд с помощью павн скриптинга. Для начала откроем любой мод. После нажмём CTRL+F и в появившееся окно вставляем public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)После этого идём в конец паблика и вставляем: if (newkeys == KEY_CROUCH) { OnPlayerCommandText(playerid,"/comanda"); }Теперь разберем все по порядку.KEY_CROUCH - Это кнопка H(р), на это кнопку часто назначают открытие ворот Какая клавиша как обозначается можно узнать здесь: Быстрое и лёгкое нахождение клавиш /comanda - Это ваша любая команда которую вы хотите назначит на эту кнопку Так же есть второй вариант. Так же находим паблик, только теперь вставляем: if (newkeys == KEY_CROUCH) { SendAllClientMessage(playerid,COLOR_GREEEN, "Всем привет!"); }То есть теперь при нажатии клавиши H(р), будет всем игрокам писаться сообщение "Всем привет!"
  23. Всё естественно, что идеальной антирекламы нету как и нету идеального ничего в жизни, всё относительно. Вот пример хорошей антирекламы всех чатов. Ставим данную проверку в паблики OnPlayerCommandText и в OnPlayerText PHP код: new word[256],Index;while(Index < strlen(cmdtext)){word = strtok(cmdtext,Index);if(checkbanan(word)==1 && тут_ваша_проверка_на_админа){banan(playerid,cmdtext);return 0;}} дальше идём в любое свободное место в моде, и объявляем нашу проверку стоками: PHP код: stock checkbanan(word[]) { if( strlen(word)>21) return 0; if( strfind(word,".", true)==-1) return 0; new ip[5][256],index; ip[0] = strtok2(word,index,'.'); ip[1] = strtok2(word,index,'.'); ip[2] = strtok2(word,index,'.'); if(strfind(word,":",true)>0){ ip[3] = strtok2(word,index,':'); ip[4] = strtok2(word,index); } else { ip[3] = strtok2(word,index); valstr(ip[4],0); } if(!IsNumeric2(ip[0])||!IsNumeric2(ip[1])||!IsNumeric2(ip[2])||!IsNumeric2(ip[3])||!IsNumeric2(ip[4]) ||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4]) ||(strval(ip[0])==192&&strval(ip[1])==168) ||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31) ||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0; return 1; } strtok2(string[],&idx,seperator = ' ') { new ret[128], i = 0, len = strlen(string); while(string[idx] == seperator && idx < len) idx++; while(string[idx] != seperator && idx < len) { ret[i] = string[idx]; i++; idx++; } while(string[idx] == seperator && idx < len) idx++; return ret; } stock IsNumeric2(string[]) { for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return 0; return 1; } stock banan(playerid,bantext[]) { new name[MAX_PLAYER_NAME],string[256];GetPlayerName(playerid,name,24); format(string, 256, "[%d]%s рекламит сервер и забанен за рекламу, введёный им IP: %s",playerid,name,bantext); SendClientMessageToAll(COLOR_YELLOW,string);//это уже сами измените как хотите, зависит от вашего мода и фантазии Ban(playerid); } Вот и всё, очень просто и защита неплохая впринципе!
  24. serega1111

    [Урок] Создание радио на 0.3D

    Приветствую вас пользователи форума, на днях задался вопросом, как урасиво реализовать функции радио в sa-mp 0.3D, и у меня получилось следующее: В начало мода ко всем #define надо добавить PHP код: #define RADIO 3000//Где 3000 это ID диалога Далее мы находим паблик public OnPlayerStateChange(playerid, newstate, oldstate) и вствляем в него: PHP код: if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls");//если человек в авто то начинает играть радио сюда свое радио, у меня стоит стандатрное if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) StopAudioStreamForPlayer(playerid);//если человек вышел из транспорта, то радио выключается // Добавляем команду /radio PHP код: //Добавляем команду "/radio" if(!strcmp(cmdtext, "/radio", true)) return ShowPlayerDialog(playerid, RADIO, DIALOG_STYLE_LIST, "Выбирите Радио волну:","0-Зайцев FM\n1-Европа +\n2-Maks FM\n3-MeGa Radio\n4-Love Radio\n5-ICE FM\n6-D-FM\n7-Record FM\nОтключить радио", "Ok", "Выход"); Находим паблик public OnPlayerKeyStateChange(playerid, newkeys,oldkeys) и вставляем в него: PHP код: if (newkeys == 262144) OnPlayerCommandText(playerid,"/radio"); //262144 - это id клавиши R Находим паблик public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и внего вписываеш: PHP код: if(dialogid == RADIO) { if( response) { switch( listitem) { case 0: PlayAudioStreamForPlayer(playerid,"http://www.zaycev.fm:9001/rnb/ZaycevFM(128)"); case 1: PlayAudioStreamForPlayer(playerid,"http://webcast.emg.fm:55655/europaplus128.mp3"); case 2: PlayAudioStreamForPlayer(playerid,"http://radio.maks-fm.ru:8000/maksfm128.m3u"); case 3: PlayAudioStreamForPlayer(playerid,"http://megaradio.radiotelek.ru/megaradio.m3u"); case 4: PlayAudioStreamForPlayer(playerid,"http://stream01.rambler.ru/love64.mp3"); case 5: PlayAudioStreamForPlayer(playerid,"http://icefm.ru/etc/live.m3u"); case 6: PlayAudioStreamForPlayer(playerid,"http://w02-cn01.akadostream.ru:8000/dinamitfm48.mp3"); case 7: PlayAudioStreamForPlayer(playerid,"http://w02-cn01.akadostream.ru:8000/radiorecord128.mp3"); case 8: StopAudioStreamForPlayer(playerid); } } } На счет багов, ошибках пишите в этой теме.
  25. serega1111

    [Урок]Создание статуса

    Здраствуйте хочю поведать новичкам(чаще всего)как же всётаки привезать машину не к фракции не по порядковому номеру а по переменным,и так начнём,рассмотрим пример на машинах грув стрита(покажу как добавить машины и привезать их по переменной к фракции) 1)к forward'ам добавить: PHP код: forward IsAGrooveCar(carid); к new добавить PHP код: new GroveCar[2]; теперь добавляем машины в public OnGameModeInit(скину из своего мода) PHP код: AddStaticVehicleEx(600,2487.8506,-1681.2094,13.0448,2.8373,86,86, 60000); AddStaticVehicleEx(600,2491.5459,-1681.2618,13.0490,359.6013,86,86, 60000); AddStaticVehicleEx(492,2516.4478,-1671.8979,13.6814,62.0043,86,86, 60000); AddStaticVehicleEx(492,2510.7803,-1687.7375,13.3418,45.3245,86,86, 60000); AddStaticVehicleEx(492,2506.0259,-1694.2249,13.3317,0.0002,86,86, 60000); AddStaticVehicleEx(492,2506.6377,-1651.8461,13.4621,317.3195,86,86, 60000); AddStaticVehicleEx(500,2467.2190,-1655.0046,13.4315,90.4295,86,86, 60000); AddStaticVehicleEx(487,2529.4441,-1678.7546,20.1231,5.9486,86,86, 60000); AddStaticVehicleEx(500,2473.1929,-1655.0105,13.4399,91.4332,86,86, 60000); машины мы добавили,но они не привязаны к фракции,перед первой машиной пишим GroveCar[0] = ,перед последней GroveCar[1],получится вот так PHP код: GroveCar[0] = AddStaticVehicleEx(600,2487.8506,-1681.2094,13.0448,2.8373,86,86, 60000); AddStaticVehicleEx(600,2491.5459,-1681.2618,13.0490,359.6013,86,86, 60000); AddStaticVehicleEx(492,2516.4478,-1671.8979,13.6814,62.0043,86,86, 60000); AddStaticVehicleEx(492,2510.7803,-1687.7375,13.3418,45.3245,86,86, 60000); AddStaticVehicleEx(492,2506.0259,-1694.2249,13.3317,0.0002,86,86, 60000); AddStaticVehicleEx(492,2506.6377,-1651.8461,13.4621,317.3195,86,86, 60000); AddStaticVehicleEx(500,2467.2190,-1655.0046,13.4315,90.4295,86,86, 60000); AddStaticVehicleEx(487,2529.4441,-1678.7546,20.1231,5.9486,86,86, 60000); GroveCar[1] = AddStaticVehicleEx(500,2473.1929,-1655.0105,13.4399,91.4332,86,86, 60000); теперь создаём паблик PHP код: public IsAGrooveCar(carid) { if(( carid >= GroveCar[0]) && (carid <= GroveCar[1])) { return 1; } return 0; } в этом паблике машины грув стрита от GroveCar[0] до GroveCar[1],продожаем,необходимо сделать проверку на фракцию при входе в машину идём в public OnPlayerStateChange и добавляем PHP код: if(IsAGrooveCar(newcar)) { if( PlayerInfo[playerid][pMember] == 13||PlayerInfo[playerid][pLeader] == 13) { } else { SendClientMessage(playerid,COLOR_GREY," Вы не из Grove Street"); RemovePlayerFromVehicle(playerid); printf("TEST29");} } 13 - номер фракции,меняем на свободный.Вот и всё) Это привязка машин по переменным
×

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

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