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

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

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

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

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

Тип контента


Форумы

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

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

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


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

  • Начало

    Конец


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

  • Начало

    Конец


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

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

  1. Anton_Styazhkin

    Античит на деньги

    U_AC_MONEY.INC Античит на деньги от Anton_Styazhkin aka Untonyst Хочу представим вам гибкий в настройке античит на деньги, написанный с использование ALS хуков (перехват нативных функций и каллбэков). Как работает античит. При любом несовпадение суммы денег игрока и суммы, записанной в античите, он будет срабатывать. Деньги будут списывать и будет вызван каллбэк «OnMoneyCheatDetected», конечно, если вы его указали. В зависимости от содержания этот каллбэка будет происходить «наказание» игрока за использование читов, или, оповещение администраторам о потенциальном читере. Ложных срабатываний пока не наблюдалось, по крайней мере меня как автора о них не извещали :D Чтобы его подключить, вам просто надо в начале мода ко всем инклудам добавить #include <u_ac_money> При ложных срабатываниях, связанных с проблемами с сетью, высоким пингом или чем-нибудь еще, перед подключением инклуда добавим #define AC_MONEY_IGNORE_TICK_TIME (значение) #include <u_ac_money> Важно, чтобы значение было больше 1000. Если не выставлять это значение, то ставится значение по умолчанию - 1000. Чтобы настроить индивидуально наказание, оповещение администраторам или что-нибудь еще, достаточно в моде добавить каллбэк OnMoneyCheatDetected #include <u_ac_money> public OnMoneyCheatDetected(playerid) { SendClientMessage(playerid, -1, "Ваш баланс восстановлен. Администрация уже вкурсе!"); } Функция вызывается читером и не возвращает какого-либо конкретного значения. Скачать (click). Создайте файл в том же самом блокноте, потом на «сохранить как» и введите «u_ac_money.inc». Если вам понравится такой представление античитов, то я с радостью продолжу разработку, если мне будет не лень и если я буду не занят.
  2. Anton_Styazhkin

    ядро донат-системы - бета

    U_DONATE.INC ядро донат-системы Здравствуйте, мне часто писали в ЛС в ВКонтакте с просьбой написать/переделать их систему доната. Я стал озадачен целью создания библиотеки, которая бы упростила бы вам жизнь, мои дорогие новички в скриптинге. На данный момент библиотека находятся находится в стадии бета разработки и имеет несколько функций: TextDraw: UpdateDonateTextDraw(игрок) - обновляет донат-счетчик (TextDraw) HideDonateTextDraw(игрок) - скрывает донат-счетчик (TextDraw) ShowDonateTextDraw(игрок) - показывает донат-счетчик (TextDraw) Деньги: ResetPlayerDonateMoney(игрок) - обнуляет количество донат-денег SetPlayerDonateMoney(игрок, сумма) - устанавливает количество донат-денег GetPlayerDonateMoney(игрок) - получает количество донат-денег GivePlayerDonateMoney(игрок, сумма) - выдает донат-деньги По традиции небольшой пример: Напишем донат-панель с тримя пунктами: сменить имя, обменять донат-деньги на игровые и купить скин. #include <dc_cmd> #include <sscanf2> #include <u_donate> // :3 enum e_PLAYERS { name[MAX_PLAYER_NAME], money, skin }; new player[MAX_PLAYERS][e_PLAYERS]; COMMAND:donate(playerid) { ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Донат", "{FFFFFF}Изменить имя\nОбменять на деньги\nИзменить скин", "Выбрать", "Отмена"); } COMMAND:give_donate(playerid, params[]) { if(sscanf(params, "i", params[0])) return 0; GivePlayerDonateMoney(playerid, params[0]); UpdateDonateTextDraw(playerid); ShowDonateTextDraw(playerid); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case 0: { if(!response) return 0; if(response) { switch(listitem) { case 0: { if(GetPlayerDonateMoney(playerid) < 15) { SendClientMessage(playerid, -1, "У вас недостаточно донат-денег !"); return 0; } ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "../изменить имя", "{FFFFFF}Введите новое имя.", "Купить", "Отмена"); } case 1: { if(GetPlayerDonateMoney(playerid) <= 0) { SendClientMessage(playerid, -1, "Вам нечего менять ((99"); return 0; } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "../обменять на деньги", "{FFFFFF}Вы действительно хотите обменять донат-деньги?", "Да", "Нет"); } case 2: { if(GetPlayerDonateMoney(playerid) < 75) { SendClientMessage(playerid, -1, "У вас недостаточно донат-денег !"); return 0; } ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "../изменить скин", "{FFFFFF}Укажите номер скина, который хотите получить.", "Да", "Нет"); } } } } case 1: { if(!response) return 0; if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "../изменить имя", "{FFFFFF}Введите новое имя.", "Купить", "Отмена"); if(strlen(inputtext) < MAX_PLAYER_NAME - 18 && strlen(inputtext) > MAX_PLAYER_NAME) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "../изменить имя", "{FFFFFF}Введите новое имя.", "Купить", "Отмена"); for(new i = strlen(inputtext) - 1; i != -1; i--) if((inputtext[i] >= 'a' && inputtext[i] <= 'z') || (inputtext[i] >= 'A' && inputtext[i] <= 'Z') || (inputtext[i] == '_')) continue; else return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "../изменить имя", "{FFFFFF}Введите новое имя.", "Купить", "Отмена"); sscanf(inputtext, "s[24]", player[playerid][name]); SetPlayerName(playerid, player[playerid][name]); static const str[] = "Вы сменили имя на %s"; new ftm_str[sizeof(str) + (-2) + MAX_PLAYER_NAME]; format(ftm_str, sizeof(ftm_str), str, player[playerid][name]); SendClientMessage(playerid, -1, ftm_str); SetPlayerDonateMoney(playerid, GetPlayerDonateMoney(playerid) - 15); UpdateDonateTextDraw(playerid); GameTextForPlayer(playerid, "~r~-$15", 2000, 5); } } case 2: { if(!response) return 0; if(response) { static const str[] = "~g~+$%i"; new ftm_str[sizeof(str) + (-2) + 8]; format(ftm_str, sizeof(ftm_str), str, GetPlayerDonateMoney(playerid)); GameTextForPlayer(playerid, ftm_str, 2000, 5); GivePlayerMoney(playerid, GetPlayerDonateMoney(playerid)); ResetPlayerDonateMoney(playerid); UpdateDonateTextDraw(playerid); SendClientMessage(playerid, -1, "Вы обменяли донат-деньги на игровые!"); } } case 3: { if(!response) return 0; if(response) { new old_skin; old_skin = player[playerid][skin]; sscanf(inputtext, "i", player[playerid][skin]); if(old_skin == player[playerid][skin]) { player[playerid][skin] = old_skin; SetPlayerSkin(playerid, player[playerid][skin]); return 0; } SetPlayerDonateMoney(playerid, GetPlayerDonateMoney(playerid) - 75); GameTextForPlayer(playerid, "~r~-$75", 2000, 5); UpdateDonateTextDraw(playerid); SetPlayerSkin(playerid, player[playerid][skin]); SendClientMessage(playerid, -1, "Вы изменили скин!"); } } } return 1; } Скачать (click). Автор: Anton_Styazhkin aka Untonyst ;) Можете предлагать все ваши идеи, все учту.
×

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

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