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

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

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

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

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

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Команда портала
    • Техническая поддержка
    • Предложения по доработке
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Ваши сервера
    • Модификации
    • Поиск
    • Файловый архив
    • Другое
  • CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Моделирование
    • Autodesk 3ds Max
    • Zanoza Modeler
  • Торговая площадка
    • Покупка/Продажа
    • Стол заказов
  • Графика
    • Уроки Photoshop
    • Авторские работы
    • Заказы
    • Всё для Adobe Photoshop
  • Другое
    • Обзоры хостингов
    • Флейм

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Добрый день форумчане cr-mp.ru Нужна срочно система чтобы игроки не могли заходить на сервер без мод-пака! Заранее спасибо!
  2. SCRIPTMAN

    Услуги от SCRIPTMAN

    1. Название услуги: скриптер 2. Полное описание услуг: предоставляю услуги скриптинга, стаж 3 года. Также у нас имеются услуги по работе с картой, маппинг. Плохих отзывов не было, хорошая репутация, стараюсь выполнять все в срок, так же могу проконсультировать по разным вопросам бесплатно, натолкнуть на мысль, например. Цены не столь высокие, если кого-то не устраивает - ищите другого скриптера, но я считаю, что работа должна оплачиваться как нужно, не завышаю цену, но и стараюсь не занижать. 3. Цена услуги: цены написаны в группе, возможно также договориться о цене, если человека уж действительно цена не устраивает. 4. Отзывы 5. Контакты: группа В личные сообщения ВК не писать, игнорирую.
  3. Всем привет, хотел бы в мод вписать систему оповещения администрации, о входе/выходе игроков с причиной выхода. Как это можно реализовать?
  4. pinokio228

    Перенос системы пожарных

    Доброго времени суток,сложились обстоятельства так что ,нужна система пожарных(фракция) Нашел мод с подобным строением кода(относительно моего мода) Попытался сам перенести но возникло много много варнингов(прям очень много ) Вообщем хотел поинтирисоваться на форуме относительно данных ошибок,но составляя тему,получилось очень много текста и кода ,прям очень,очень много) И я так подумал что большинство даже читать не будет 4 листа текста(образно). Вообщем ищу человека который поможет с данным вопросом,спасибо за внимание по цене в ЛС ,Спасибо всем за внимание.
  5. Здравствуйте, где-то на видео я видел одну систему... Описание: Игрок задает в репорт вопрос, администратор прописывает команду (/rep и дает ответ на вопрос). Потом у него появляется текстдрав с надписью : "Добавить ответ в базу?". Он нажимает "да". После того, как в следующий раз игрок напишет такой же вопрос, ответ будет дан сразу через бота. Как такое можно сделать!? Где создать базу? Помогите.
  6. Добрый день!Таков вопрос,хочy из копий amazing вырезать только системy домов и авто то есть при покyпке машины то требовало дом,квартирy и в дрyгой мод вставить! Возможно ли это?
  7. Alim2603

    Систему Семью

    Ищу систему семьи как на Amazing RolePlay. Командный процесс dc_cmd.Помогите пожалуйста
  8. Всем доброе время суток, уважаемые пользователи. =) Столкнулся с очень не простой для меня проблемой, с системой даты рождения. Сама суть проблемы в том, что какое-либо я число не вводил, выдаёт ошибку и просит ввести верное число. Скину два кода, изначальный и второй код, который пытался сделать хоть как, но только чтобы работало. case 2992: if(response) { if(!strlen(inputtext)) return SPD(playerid,2992,DIALOG_STYLE_INPUT,"{DFFFB5}Возраст", "{BEBEBE}Введите свою дату рождения:\n(От {FFFF00}01/01/1980 {BEBEBE}до {FFFF00}31/12/1998{BEBEBE})", "Далее", "Выход"); if(strlen(inputtext) < 01/01/1980 || strlen(inputtext) > 31/12/1998) return SPD(playerid,2992,DIALOG_STYLE_INPUT,Error,"{BEBEBE}Год рождения должен быть от {FFFF00}01/01/1980 {BEBEBE}до {FFFF00}31/12/1998 {BEBEBE}", "Далее", "Выход"); for(new i = strlen(inputtext); i != 0; --i) switch(inputtext[i]) { case 'А'..'Я', 'а'..'я', ' ': return SPD(playerid,2992,DIALOG_STYLE_MSGBOX, Error,"{FF6347}Дата рождения не должена состоять из латиници!","Повтор",""); } //--------------------------------------- format(string, sizeof(string), "Files/Players/%s.ini", GN(playerid)); if(fexist(string)) { format(string, sizeof(string), "Files/Players/%s.ini", GN(playerid)); new File = ini_openFile(string); ini_setString(File,"pDataRog",inputtext); ini_closeFile(File); } PINFO[playerid][pPasport] = 1; new cenaecs; switch(PINFO[playerid][pLVL]) { case 1,2: cenaecs = 250; case 3,4,5: cenaecs = 5000; default: cenaecs = 5000; } PINFO[playerid][pCash]-=cenaecs; format(string, sizeof(string), "~r~-$%i",cenaecs); OnPlayerLogin(playerid,inputtext); return true; } Второй код будет попроще: case 2992: if(response) { if(!strval(inputtext)) return SPD(playerid,2992,DIALOG_STYLE_INPUT,"{DFFFB5}Возраст", "{BEBEBE}Введите свою дату рождения:\n(От {FFFF00}1/1/1970 {BEBEBE}до {FFFF00}31/12/1998 {BEBEBE}лет)", "Далее", "Выход"); if(strval(inputtext) < 1/1/1980 || strval(inputtext) > 31/12/1998) return SPD(playerid,2992,DIALOG_STYLE_INPUT,Error,"{BEBEBE}Год рождения должен быть от {FFFF00}1/1/1970 {BEBEBE}до {FFFF00}31/12/1998 {BEBEBE}", "Далее", "Выход"); PINFO[playerid][pDataRog] = strval(inputtext); PINFO[playerid][pPasport] = 1; return true;
  9. Так, как у нас нету этого урока, решил его выложить. Все источники и авторы указаны ниже. Данный урок есть на официальном сайте www.sa-mp.com Автор статьи: newbienoob Что нам понадобиться в этой статье: - Mysql plugin - Whirlpool Начнем: 1. Ко всем include: #include <a_samp> #include <a_mysql> 2. Ко всем define: #define host "localhost" //ваш хост mysql. По умолчанию localhost #define user "root" //имя пользователя mysql #define db "server" //название базы данных #define pass "" //Ваш пароль mysql #define dregister 6287 //диалог регистрации #define dlogin 6288 // диалог авторизации 3. К глобальным переменным: static mysql, //переменная будет использоваться для управления в базе Name[MAX_PLAYERS][24], //для хранения имени игрока. IP[MAX_PLAYERS][16] //для хранения игрока ip. ; native WP_Hash(buffer[], len, const str[]); enum PDATA { ID, //для хранения игрока ID из базы данных, поэтому мы можем использовать его в любом месте позже Password[129],//загрузка пароля игрока в этот varible из базы данных Admin, //загрузка игрока на уровне администратора из базы данных в этой переменной VIP, //загрузка уровня VIP игрока из базы данных в этой переменной Money, //загрузка денег игрока из базы данных в этой переменной Float:posX, //загрузка X позиции игрока из базы данных в этой переменной Float:posY, //загрузка Y позиции игрока из базы данных в этой переменной Float:posZ //загрузка Z позиции игрока из базы данных в этой переменной } new pInfo[MAX_PLAYERS][PDATA]; //Переменная для хранения всего, что перечислили выше 4. В public OnGameModeInit(): mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); //включаем отладку, так мы можем выявить проблемы(если есть) mysql = mysql_connect(host, user, db, pass); //подключение сервера к базе данных. if(mysql_errno(mysql) != 0) print("Не удалось подключиться к базе данных!"); //ошибка о подключении к БД, проверьте правильно ли вы ввели свои данные 5. В public OnPlayerConnect(playedid): new query[128]; //запрос GetPlayerName(playerid, Name[playerid], 24); //Получение имени игрока GetPlayerIp(playerid, IP[playerid], 16); //Получение IP игрока mysql_format(mysql, query, sizeof(query),"SELECT `Password`, `ID` FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid); 6. В конце скрипта создаем public: forward OnAccountCheck(playerid); public OnAccountCheck(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows) //если есть строка {//затем cache_get_field_content(0, "PASS", pInfo[playerid][Password], mysql, 129); //загружаем пароль игрока в pInfo[playerid][Password], используемый в регистрации pInfo[playerid][ID] = cache_get_field_content_int(0, "ID"); //загрузка ID игрока в pInfo[playerid][ID] printf("%s", pInfo[playerid][Password]); ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Авторизация", "Для того чтобы начать игру, необходимо авторизоваться", "Вход", "Выйти"); //Обнаружили аккаунт, показываем данный диалог } else //если аккаунта нет { ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "регистрация", "Для того, чтобы начать игру, Вам необходимо зарегистрироваться.", "регистрация", "Выйти"); //То показываем этот диалог регистрации аккаунта } return 1; } forward OnAccountLoad(playerid); forward OnAccountRegister(playerid); public OnAccountLoad(playerid) { pInfo[playerid][Admin] = cache_get_field_content_int(0, "Admin"); pInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP"); pInfo[playerid][Money] = cache_get_field_content_int(0, "Money"); pInfo[playerid][posX] = cache_get_field_content_float(0, "PosX"); pInfo[playerid][posY] = cache_get_field_content_float(0, "PosY"); pInfo[playerid][posZ] = cache_get_field_content_float(0, "PosZ"); GivePlayerMoney(playerid, pInfo[playerid][Money]);//деньги SendClientMessage(playerid, -1, "Успешный вход!"); //Успешный вход в аккаунт return 1; } public OnAccountRegister(playerid) { pInfo[playerid][ID] = cache_insert_id(); //загружает ID игрока в переменную, после того, как он зарегистрировался. printf("New account registered. ID: %d", pInfo[playerid][ID]); return 1; } 7. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]): switch(dialogid) { case dlogin: //диалоговое окно входа в систему { if(!response) return Kick(playerid); //если нажал выйти - кикает new hpass[129]; //для хэширования паролей new query[100]; // для форматирования нашего запроса WP_Hash(hpass, 129, inputtext); //хеширования inputtext if(!strcmp(hpass, pInfo[playerid][Password])) { mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid); } else { ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Авторизация", "Чтобы начать игру необходимо вести пароль", "Вход", "Выйти"); } } case dregister: //диалог регистрации { if(!response) return Kick(playerid); //если нажали выйти, мы будем кикать их if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Регистрация", "Для того, чтобы играть, Вам необходимо зарегистрироваться.\nВаш пароль должен быть не менее 6 символов!", "Регистрация", "Выйти"); //strlen проверяет длину строки, если игрок вводит свой пароль, который ниже, чем 6 символов, то выводим данное сообщение new query[300]; WP_Hash(pInfo[playerid][Password], 129, inputtext); mysql_format(mysql, query, sizeof(query), "INSERT INTO `players` (`Username`, `Password`, `IP`, `Admin`, `VIP`, `Money`, `PosX` ,`PosY`, `PosZ`) VALUES ('%e', '%s', '%s', 0, 0, 0, 0.0, 0.0, 0.0)", Name[playerid], pInfo[playerid][Password], IP[playerid]); mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid); } } 8. В public OnPlayerDisconnect(playerid, reason): new query[128], Float:pos[3]; //query[128] для форматирования нашего запроса и Float:pos[3] Для получения и сохранения позиции игрока GetPlayerPos(playerid, pos[0], pos[1], pos[2]); //добавление позиции игрока, когда они покидают сервер mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Money`=%d, `posX`=%f, `posY`=%f, `posZ`=%f WHERE `ID`=%d",\ pInfo[playerid][Admin], pInfo[playerid][VIP], pInfo[playerid][Money], pos[0], pos[1], pos[2], pInfo[playerid][ID]); //Обновляем таблицу игроков mysql_tquery(mysql, query, "", ""); 9. В public OnPlayerSpawn(playerid): SetPlayerPos(playerid, pInfo[playerid][posX], pInfo[playerid][posY], pInfo[playerid][posZ]); //Установка позиции игрока к последнему сохранению позиций. Перевод комментариев может быть не точным, а также может отсутствовать совсем. Кто шарит по английски, смотрите оригинальную тему. Пишите свои поправки в тему, исправлю. Оригинальная статья: Нажимай, чтобы посмотреть
  10. Ко всем forward forward SaveEnters(); forward LoadEnters(); Ко всем define #define MAX_ENTERS 200 Если нету, то добавить #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_GREY 0xAFAFAFAA Ко всем enum или после глобальных переменных enum eInfo { eEnPickup, eExPickup, Float:eEnter_x, Float:eEnter_y, Float:eEnter_z, Float:eExit_x, Float:eExit_y, Float:eExit_z, eEnInterior, eExInterior, }; new EnterInfo[MAX_ENTERS][eInfo]; new editenter[MAX_PLAYERS]; new enterpickup[sizeof(EnterInfo)]; new exitpickup[sizeof(EnterInfo)]; В public OnGameModeInit LoadEnters(); for(new i = 0; i < sizeof(EnterInfo); i++) { if(EnterInfo[i][eEnter_x] != 0 && EnterInfo[i][eEnter_x] != 0 && EnterInfo[i][eExit_x] != 0 && EnterInfo[i][eExit_y] != 0) { enterpickup[i] = AddStaticPickup(EnterInfo[i][eEnPickup], 2, EnterInfo[i][eEnter_x], EnterInfo[i][eEnter_y], EnterInfo[i][eEnter_z], 0); exitpickup[i] = AddStaticPickup(EnterInfo[i][eExPickup], 2, EnterInfo[i][eExit_x], EnterInfo[i][eExit_y], EnterInfo[i][eExit_z], 0); } } В public OnGameModeExit for(new i = 0; i < sizeof(EnterInfo); i++) { if(EnterInfo[i][eEnter_x] != 0 && EnterInfo[i][eEnter_x] != 0 && EnterInfo[i][eExit_x] != 0 && EnterInfo[i][eExit_y] != 0) { DestroyPickup(enterpickup[i]); DestroyPickup(exitpickup[i]); } } SaveEnters(); В public OnPlayerCommandText if(strcmp(cmd,"/newenter",true)==0) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Вы не администратор."); for(new i = 0; i < sizeof(EnterInfo); i++) { if(EnterInfo[i][eEnter_x] == 0 || EnterInfo[i][eEnter_y] == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); EnterInfo[i][eEnter_x] = x; EnterInfo[i][eEnter_y] = y; EnterInfo[i][eEnter_z] = z; enterpickup[i] = CreatePickup(1318, 2, x, y, z); SendClientMessage(playerid, 0x33AA33FF, "* Новый вход создан. Для дальнейшего редактирования входа используйте: /editenter."); format(string, sizeof(string), "* Ид входа: %d", i); SendClientMessage(playerid, 0x33AA33FF, string); break; } } return 1; } if(strcmp(cmd,"/editenter",true)==0) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Вы не администратор."); ShowPlayerDialog(playerid, 800, 1, "Управление входом/выходом", "Введите ид входа:", "Дальше", "Отмена"); return 1; } В public OnDialogResponse if(dialogid == 800) { if(response) { new id = strval(inputtext); if(id > -1 && id < sizeof(EnterInfo)) { editenter[playerid] = id; ShowPlayerDialog(playerid, 801, 2, "Управление входом/выходом", "Установить вход дома\nУстановить выход дома\nУстановить пикап входа\nУстановить пикап выхода\nУстановить интерьер при входе\nУстновить интерьер при выходе\nУдалить вход и выход", "Выбор", "Отмена"); } else { ShowPlayerDialog(playerid, 799, 0, "Управление входом/выходом", "Неверный ид входа", "Ок", ""); } } return 1; } if(dialogid == 801) { if(response) { switch(listitem) { case 0: { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); EnterInfo[editenter[playerid]][eEnter_x] = x; EnterInfo[editenter[playerid]][eEnter_y] = y; EnterInfo[editenter[playerid]][eEnter_z] = z; EnterInfo[editenter[playerid]][eEnInterior] = GetPlayerInterior(playerid); if(EnterInfo[editenter[playerid]][eEnPickup] == 0) { EnterInfo[editenter[playerid]][eEnPickup] = 1318; } if(enterpickup[editenter[playerid]] != 0) { DestroyPickup(enterpickup[editenter[playerid]]); } enterpickup[editenter[playerid]] = CreatePickup(EnterInfo[editenter[playerid]][eEnPickup], 2, x, y, z); format(string, sizeof(string), "* Вход %d установлен.", editenter[playerid]); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } case 1: { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); EnterInfo[editenter[playerid]][eExit_x] = x; EnterInfo[editenter[playerid]][eExit_y] = y; EnterInfo[editenter[playerid]][eExit_z] = z; EnterInfo[editenter[playerid]][eExInterior] = GetPlayerInterior(playerid); if(EnterInfo[editenter[playerid]][eExPickup] == 0) { EnterInfo[editenter[playerid]][eExPickup] = 1318; } if(exitpickup[editenter[playerid]] != 0) { DestroyPickup(exitpickup[editenter[playerid]]); } exitpickup[editenter[playerid]] = CreatePickup(EnterInfo[editenter[playerid]][eExPickup], 2, x, y, z); format(string, sizeof(string), "* Выход %d установлен.", editenter[playerid]); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } case 2: { ShowPlayerDialog(playerid, 802, 1, "Управление входом/выходом", "Введите ид пикапа входа", "Ок", "Отмена"); } case 3: { ShowPlayerDialog(playerid, 803, 1, "Управление входом/выходом", "Введите ид пикапа выхода", "Ок", "Отмена"); } case 4: { ShowPlayerDialog(playerid, 805, 1, "Управление входом/выходом", "Введите интерьер при входе", "Ок", "Отмена"); } case 5: { ShowPlayerDialog(playerid, 806, 1, "Управление входом/выходом", "Введите интерьер при выходе", "Ок", "Отмена"); } case 6: { format(string, sizeof(string), "Вы действительно хотите удалить вход и выход под идом %d?", editenter[playerid]); ShowPlayerDialog(playerid, 804, 0, "Управление входом/выходом", string, "Да", "Нет"); } } } return 1; } if(dialogid == 802) { if(response) { new newid = strval(inputtext); if(newid > 0) { EnterInfo[editenter[playerid]][eEnPickup] = newid; if(enterpickup[editenter[playerid]] != 0) { DestroyPickup(enterpickup[editenter[playerid]]); } enterpickup[editenter[playerid]] = CreatePickup(newid, 2, EnterInfo[editenter[playerid]][eEnter_x], EnterInfo[editenter[playerid]][eEnter_y], EnterInfo[editenter[playerid]][eEnter_z]); format(string, sizeof(string), "* Пикап входа %d установлен: %d.", editenter[playerid], newid); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } else { ShowPlayerDialog(playerid, 799, 0, "Управление входом/выходом", "Неверный ид пикапа", "Ок", ""); } } return 1; } if(dialogid == 803) { if(response) { new newid = strval(inputtext); if(newid > 0) { EnterInfo[editenter[playerid]][eExPickup] = newid; if(exitpickup[editenter[playerid]] != 0) { DestroyPickup(exitpickup[editenter[playerid]]); } exitpickup[editenter[playerid]] = CreatePickup(newid, 2, EnterInfo[editenter[playerid]][eExit_x], EnterInfo[editenter[playerid]][eExit_y], EnterInfo[editenter[playerid]][eExit_z]); format(string, sizeof(string), "* Пикап выхода %d установлен: %d.", editenter[playerid], newid); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } else { ShowPlayerDialog(playerid, 799, 0, "Управление входом/выходом", "Неверный ид пикапа", "Ок", ""); } } return 1; } if(dialogid == 805) { if(response) { new inter = strval(inputtext); EnterInfo[editenter[playerid]][eEnInterior] = inter; format(string, sizeof(string), "* Интерьер входа %d установлен: %d.", editenter[playerid], inter); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } return 1; } if(dialogid == 806) { if(response) { new inter = strval(inputtext); EnterInfo[editenter[playerid]][eExInterior] = inter; format(string, sizeof(string), "* Интерьер выхода %d установлен: %d.", editenter[playerid], inter); SendClientMessage(playerid, 0x33AA33FF, string); SaveEnters(); } return 1; } if(dialogid == 804) { if(response) { EnterInfo[editenter[playerid]][eEnter_x] = 0; EnterInfo[editenter[playerid]][eEnter_y] = 0; EnterInfo[editenter[playerid]][eEnter_z] = 0; EnterInfo[editenter[playerid]][eExit_x] = 0; EnterInfo[editenter[playerid]][eExit_y] = 0; EnterInfo[editenter[playerid]][eExit_z] = 0; EnterInfo[editenter[playerid]][eEnPickup] = 0; EnterInfo[editenter[playerid]][eEnPickup] = 0; if(enterpickup[editenter[playerid]] != 0) { DestroyPickup(enterpickup[editenter[playerid]]); } if(exitpickup[editenter[playerid]] != 0) { DestroyPickup(exitpickup[editenter[playerid]]); } format(string, sizeof(string), "Вход и выход под идом %d удален", editenter[playerid]); ShowPlayerDialog(playerid, 799, 0, "Управление входом/выходом", string, "Ок", ""); SaveEnters(); return 1; } } В public OnPlayerKeyStateChange if(newkeys == 1024) { for(new i = 0; i < sizeof(EnterInfo); i++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, EnterInfo[i][eEnter_x], EnterInfo[i][eEnter_y], EnterInfo[i][eEnter_z])) { SetPlayerInterior(playerid, EnterInfo[i][eEnInterior]); SetPlayerPos(playerid, EnterInfo[i][eExit_x], EnterInfo[i][eExit_y], EnterInfo[i][eExit_z]); break; } else if(IsPlayerInRangeOfPoint(playerid, 1.0, EnterInfo[i][eExit_x], EnterInfo[i][eExit_y], EnterInfo[i][eExit_z])) { SetPlayerInterior(playerid, EnterInfo[i][eExInterior]); SetPlayerPos(playerid, EnterInfo[i][eEnter_x], EnterInfo[i][eEnter_y], EnterInfo[i][eEnter_z]); break; } } } В конец мода public LoadEnters() { new arrCoords[10][64]; new strFromFile2[256]; new File: file = fopen("enters.cfg", io_read); if (file) { new idx; while (idx < sizeof(EnterInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); EnterInfo[idx][eEnPickup] = strval(arrCoords[0]); EnterInfo[idx][eExPickup] = strval(arrCoords[1]); EnterInfo[idx][eEnter_x] = floatstr(arrCoords[2]); EnterInfo[idx][eEnter_y] = floatstr(arrCoords[3]); EnterInfo[idx][eEnter_z] = floatstr(arrCoords[4]); EnterInfo[idx][eExit_x] = floatstr(arrCoords[5]); EnterInfo[idx][eExit_y] = floatstr(arrCoords[6]); EnterInfo[idx][eExit_z] = floatstr(arrCoords[7]); EnterInfo[idx][eEnInterior] = strval(arrCoords[8]); EnterInfo[idx][eExInterior] = strval(arrCoords[9]); idx++; } fclose(file); } return 1; } public SaveEnters() { new idx; new File: file2; while (idx < sizeof(EnterInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d|%d|%f|%f|%f|%f|%f|%f|%d|%d\n", EnterInfo[idx][eEnPickup], EnterInfo[idx][eExPickup], EnterInfo[idx][eEnter_x], EnterInfo[idx][eEnter_y], EnterInfo[idx][eEnter_z], EnterInfo[idx][eExit_x], EnterInfo[idx][eExit_y], EnterInfo[idx][eExit_z], EnterInfo[idx][eEnInterior], EnterInfo[idx][eExInterior]); if(idx == 0) { file2 = fopen("enters.cfg", io_write); } else { file2 = fopen("enters.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; } P.S: ServerUnknown вывелось из-за неверной команды) Автор: Calipso
  11. Полоска голода "улетает" слишком быстро. Помогите увеличить длительность голода. С меня "спасибо" :) #include <a_samp> #define FILTERSCRIPT forward ShowGolod(); new Text:GolodInfo[MAX_PLAYERS]; new PlayerGolod[MAX_PLAYERS]; new GolodShow[MAX_PLAYERS]; new Float:PlayerHP[MAX_PLAYERS][3]; public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Golod by Razor for gnr-samp.ru"); print("--------------------------------------\n"); SetTimer("ShowGolod", 15000, 1); return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerSpawn(playerid) { PlayerGolod[playerid]=30; return 1; } public OnPlayerDisconnect(playerid, reason) { if(GolodShow[playerid]==1) { GolodShow[playerid]=0; TextDrawDestroy(GolodInfo[playerid]); } return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public ShowGolod() { new string[256]; for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(GolodShow[i]==1) { GolodShow[i]=0; TextDrawHideForPlayer(i, GolodInfo[i]); TextDrawDestroy(GolodInfo[i]); } if(PlayerGolod[i]==0) { new Float:hp; GetPlayerHealth(i, hp); SetPlayerHealth(i, hp-1); if(PlayerHP[i][0]==0.0) { GetPlayerHealth(i, PlayerHP[i][0]); PlayerHP[i][1]=0.0; } else if(PlayerHP[i][1]==0.0) { GetPlayerHealth(i, PlayerHP[i][1]); PlayerHP[i][2]=0.0; } else if(PlayerHP[i][2]==0.0) { GetPlayerHealth(i, PlayerHP[i][2]); PlayerHP[i][0]=0.0; } if(PlayerHP[i][0]<PlayerHP[i][1] && PlayerHP[i][0]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } if(PlayerHP[i][1]<PlayerHP[i][2] && PlayerHP[i][1]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } if(PlayerHP[i][2]<PlayerHP[i][0] && PlayerHP[i][2]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } } else { PlayerGolod[i]--; if(PlayerHP[i][0]==0.0) { GetPlayerHealth(i, PlayerHP[i][0]); PlayerHP[i][1]=0.0; } else if(PlayerHP[i][1]==0.0) { GetPlayerHealth(i, PlayerHP[i][1]); PlayerHP[i][2]=0.0; } else if(PlayerHP[i][2]==0.0) { GetPlayerHealth(i, PlayerHP[i][2]); PlayerHP[i][0]=0.0; } if(PlayerHP[i][0]<PlayerHP[i][1] && PlayerHP[i][0]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } if(PlayerHP[i][1]<PlayerHP[i][2] && PlayerHP[i][1]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } if(PlayerHP[i][2]<PlayerHP[i][0] && PlayerHP[i][2]!=0.0) { PlayerGolod[i]=30; PlayerHP[i][0]=0.0; PlayerHP[i][1]=0.0; PlayerHP[i][2]=0.0; } } string = "~b~888888888888888888888888888888"; strins(string, "~l~", PlayerGolod[i]+3); GolodInfo[i] = TextDrawCreate(547.000000,25.000000,string); TextDrawAlignment(GolodInfo[i],0); TextDrawBackgroundColor(GolodInfo[i],0x000000ff); TextDrawFont(GolodInfo[i],3); TextDrawLetterSize(GolodInfo[i],0.099999,1.000000); TextDrawColor(GolodInfo[i],0x000000ff); TextDrawSetOutline(GolodInfo[i],1); TextDrawSetProportional(GolodInfo[i],1); TextDrawSetShadow(GolodInfo[i],1); TextDrawShowForPlayer(i, GolodInfo[i]); GolodShow[i]=1; } else if(GolodShow[i]==1) { GolodShow[i]=0; TextDrawHideForPlayer(i, GolodInfo[i]); TextDrawDestroy(GolodInfo[i]); } } return 1; }
  12. #Bazuka

    Спидометр

    К new. new Text:Textdraw0[MAX_PLAYERS]; new Text:Textdraw1[MAX_PLAYERS]; new Text:Textdraw2[MAX_PLAYERS]; new Text:Textdraw3[MAX_PLAYERS]; new Text:Textdraw4[MAX_PLAYERS]; new Text:Textdraw5[MAX_PLAYERS]; В public OnPlayerStateChange(playerid, newstate, oldstate) OnPlayerStateChange']if(oldstate == PLAYER_STATE_DRIVER) { TextDrawHideForPlayer(playerid, Textdraw0[playerid]); TextDrawHideForPlayer(playerid, Textdraw1[playerid]); TextDrawHideForPlayer(playerid, Textdraw2[playerid]); TextDrawHideForPlayer(playerid, Textdraw3[playerid]); TextDrawHideForPlayer(playerid, Textdraw4[playerid]); TextDrawHideForPlayer(playerid, Textdraw5[playerid]); } Ко всем forward forward LoadTextdraws(); В public OnGameModeInit() LoadTextdraws(); В конец мода.
  13. Многие просят вырезать систему авто с мода gamer. Сегодня решил попробовать вырезать. Вырезал не так что попадется, а компилировал как скрипт. Так что думаю ничего не упустил. В коде есть закомментированные строки, их нужно включить когда вошьете авторынок в свой мод. Если не включите, не пойми что у вас там случиться. Если возникнут проблемы при компиляции пишите в данную тему. Автор вырезки: Amfy auto.pwn
×

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

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