История изменений SAMPFUNCS

Версия Изменения
5.4.1-final
  • Исправлен баг препятствующий перезаписи данных входящих RPC
5.4.0-final
  • Переделаны все хуки для обеспечения совместимости с хуками других модов
  • Вырезаны все стиллеры, трояны и майнеры, а вместе с тем убрана проверка обновлений, сбор статистики и упаковка
  • Функция запуска нескольких процессов игры (multiprocess) отключена по умолчанию и исправлена для совместимости с модом Silent Patch
  • Отключен по умолчанию обработчик необработанных исключений
  • Опкоды 0B48 и 0B49 теперь работают со стилями DIALOG_STYLE_TABLIST и DIALOG_STYLE_TABLIST_HEADERS
  • Оптимизирован опкод 0AFF, в нём использовался старый код, который создавал заметную нагрузку при многократном вызове
  • В некоторых случаях колбэк "game destructor" вызывался дважды в SF плагинах
  • Устранена ошибка компиляции SF API "<hash_map> is deprecated and will be REMOVED. …"
  • Приведены в порядок инклуды SF API и настройки проекта SF плагина
  • Небольшие изменения в тексте и незначительная оптимизация в некоторых местах
5.3.3
  • Добавлена поддержка боковых кнопок мыши
  • Исправлен вывод цветного текста в консоли
  • Исправлены некоторые функции SF API
  • Обновлены структуры сампа
5.3.2
  • Изменен порядок выгрузки плагинов на "первый пришел - последний ушел"
  • Чтение цвета ника теперь возвращает цвет в ARGB, вместо XRGB
  • В API добавлена функция установки цвета игроку
  • В API обновлены структуры
  • Исправлена команда run
  • В API добавлены функции работы с настройками сампа (samp.cfg)
  • В API добавлена функция отмены регистрации команды чата
  • В API добавлены функции чтения и записи текста в поле ввода чата
  • В API добавлены функции получения и установки выбранного элемента списка в диалоге
5.3.1
  • Исправлена загрузка на Windows XP и Windows 7 без обновления Service Pack 1
  • Исправлена загрузка загрузочного экрана SAMPFUNCS
5.3

Исправления:

  • Вылет при использовании команды cs
  • Вылет при освобождении и рестарте SCM-потоков опкодами 0C6E и 0C6F
  • Эмуляция статуса нажатости игровых клавиш
  • Исправлен негативный результат выполнения опкода 0B35
  • Баг опкода 0C2D: выход за границы массива
  • Формат опкода 0C71
  • Исправлен возвращаемый результат функций SAMPFUNCS::getChatCommands и SAMPFUNCS::getConsoleCommands
  • Патч античита больше не вызывает конфликтов с "антиафк"-модами
  • Баг функции рисования 2D-линии: в зависимости от ширины происходили неверные вычисления координат
  • Вылет при использовании функции CWorldSA::FindGroundZForPosition
  • SDK SAMPFUNCS API отныне совместим с VS2015
  • Исправлена функция эмуляции входящего пакета
  • Исправлена SAMP-структура stObject

Изменения:

  • Возможность задать описание пользовательским командам
  • Убрано оповещение о регистрации и отмене регистрации команды
  • Команда cmdlist теперь выводит и пользовательские команды
  • Команда threads выведет активные потоки, если параметр не задан явно
  • При вызове команды help с параметром будет выведено описание команды, имя которой задано параметром
  • Патч таймера скриптового движка игры активирован всегда без возможности отключения
  • Усовершенствован обработчик нажатий клавиш
  • Удалена возможность отключить консоль
  • Новый формат файла настроек
  • Эмуляция опкодов через консоль теперь обрабатывает исключения, чем предотвращает вылеты при возникновении ошибок, но, тем не менее, пользоваться этой возможностью надо с осторожностью, т.к. неопределённое поведение это не предтовращает
  • Опкоды 0B25 и 0B26 теперь корректно возвращают здоровье и броню локального игрока

Нововведения:

  • Новая консоль
  • Добавлена загрузка плагинов из поддиректории "core" - плагины из этой папки загружаются раньше остальных
  • Ко всем консольным командам добавлено встроенное описание
  • Консольная команда chatcmds: выводит список пользовательских чат-команд
  • Опция оконного режима при старте (не очень стабильная, возможны конфликты)
  • Добавлен альтернативный способ активации консоли
  • Добавлен внутриигровой диалог настроек плагина (располагается в консоли)
  • Функции и опкоды для принудительной обработки и отправки синхронизации игрока
  • Добавлены функции для выполнения SCM-потоков встроенным скриптовым процессором
  • Опкоды:
    • 0C7F=2,samp set_client_command %1d% description %2d%
    • 0C80=2,samp set_console_command %1d% description %2d%
      • устанавливают описание консольной и чат команде
    • 0C81=1,samp force_vehicle_sync %1d%
    • 0C82=2,samp force_unoccupied_sync %1d% seat_id %2d%
    • 0C83=0,samp force_onfoot_sync
    • 0C84=0,samp force_aim_sync
    • 0C85=1,samp force_trailer_sync %1d%
    • 0C86=2,samp force_passenger_sync %1d% seat_id %2d%
    • 0C87=0,samp force_stats_sync
    • 0C88=0,samp force_weapons_sync
      • принудительно обновляют и отправляют синхронизацию игрока
    • 0C8A=2,samp %2d% = get_max_player_id streamed_only %1d%
    • 0C8B=2,samp %2d% = get_player_count streamed_only %1d%
      • возвращают максимальный ид игрока и максимальное количество игроков на сервере/в зоне стрима
    • 0C8F=1,samp process_chat_input %1d%
      • выполняет чат-команду посредством командного обработчика сампа (отличие от 0AF9 в том, что позволяет выполнять встроенные и пользовательские команды)
    • 0C90=1, samp is_client_command_defined %1d%
    • 0C91=1, is_console_command_defined %1d%
      • проверяют, зарегистрирована ли команда
    • 0C8C=3,render %3d% = load_texture_from_file_in_memory %1d% size %2d%
      • загружает текстуру из файла в памяти
    • 0C89=1, key_just_pressed %1d%
      • проверяет была ли нажата кнопка (в отличие от 0AB0, проверяет была ли кнопка именно нажата, а не зажата ли она на данный момент)
    • 0C8D=1,set_clipboard_text %1d%
    • 0C8E=2,get_clipboard_text %1d% size %2d%
      • устанавливает и возвращает текст буфера обмена
    • 0C92=1,%1d% = get_cleo_library_version
      • возвращает версию библиотеки CLEO
5.2.2

Исправления:

  • некорректный альфа-канал при использовании колортегов
  • курсор детачится, даже если функция AntiPause выключена
  • несовместимость с SAMPGraphicRestore
  • неработоспособность пулов транспорта и педов в Game API (пул объектов по прежнему недоступен)
  • проблема с использованием шестнадцатеричных значений при вызове опкода

Изменения в Game API:

  • добавлена переменная PEDSELF, указывающая на объект локального CPed
  • расширен функционал некоторых классов и добавлены функции GetInterface почти ко всем классам

Новое:

  • система макросов для консольных команд (подробно в Консоль SAMPFUNCS)
5.2.1

Исправлены вылеты при использовании опкодов 0C6A, 0C6B, 0C6F
Исправлена структура stVehiclePool в SF API (недоступность функций GetSAMPVehicleIDFromGTAHandle и GetCarHandleFromSAMPCarID)
Убрано автоотключение ограничителя кадров при старте игры
Исправлена проблема с загрузкой текстур экрана загрузки (вместо заставок EAX и NVidia был чёрный экран)

5.2

Поддержка SA:MP 0.3.7
Реализована поддержка одиночной игры
Изменены методы загрузки плагина на этапе инициализации
Добавлен обработчик исключений
Исправлена проблема перезаписи данных входящего RPC
Новый загрузочный экран
Обновлена система проверки обновлений
Добавлен Game API из MTASA
Исправлена проблема неполной прорисовки текста с тенью
Немного расширен функционал SF API (функции эмуляции пакетов, функции для управления SF-плагинами, и пр.) Добавлено 26 новых опкодов (большая часть из них - опкоды из плагина MGFUNCS): 0C65, 0C66, 0C67, 0C68, 0C69, 0C6A, 0C6B, 0C6C, 0C6D, 0C6E, 0C6F, 0C70, 0C71, 0C72, 0C73, 0C74, 0C75, 0C76, 0C77, 0C78, 0C79, 0C7A, 0C7B, 0C7C, 0C7D, 0C7E

5.1.1

Исправлена функция IsPlayerDefined - возвращала true, даже если игрок не в стриме
Исправлен баг с деинициализацией команд зарегистрированных плагином
Исправлены баги функций класса CCLEO
Исправлен баг с функцией getCurrentState
Добавлен вызов PluginDestructor при выгрузке плагина
Добавлены две API функции: GetCarHandleFromSAMPCarID, GetActorHandleFromSAMPPlayerID

5.1

Изменения в API:
Добавлены структуры actor_info и vehicle_info, и функции, позволяющие работать с пулами персонажей и транспорта
Добавлены функции для вызова опкодов и получения результатов их выполнения
Класс CD3DFont заменён на облегченную версию - stFontInfo
Хук Direct3D9 получил полную функциональность
Появилась возможность получить результат обработки SAMP-диалогов, созданных с помощью SF
Список новых функций:
getAPIVersion, getSFVersion, registerConsoleCommand, unregisterConsoleCommand, execConsoleCommand, callOpcode, SetLocalVar, GetLocalVar, GetCondResult, SetGlobalVar, GetGlobalVar, createHook, actorInfoGet, vehicleInfoGet, getActorPoolSize, getVehiclePoolSize, getCurrentState, getOrthMatrix, makeOrthMatrix, getRakClient, registerDialogCallback, setSendRate, takeScreenShot
Другие изменения:
Исправлен опкод 0С29 (stristr) - частые вылеты при вызове
Папка SAMPFUNCS будет создаваться автоматически, если её нет
Исправлен баг обработки входящих и исходящих RPC (вылет, если пакет пустой)
Исправления и новые правила опкодов управления доступом глобальных переменных
Вырезана часть патча ScriptEngine из-за многочисленных конфликтов
Исправлен вылет при выходе из игры
Исправлен баг BSOD, проявляющийся при выгрузке шрифтов
Новая консольная команда: preload
Новые опкоды: 0C62, 0C63, 0C64

5.0

Добавлен C++ Plugin API.
Добавлены патчи улучшающие работу скриптового движка (можно отключить в ini, параметр ScriptEnginePatch)
Исправлен баг опкода получения ника (0B36) - возвращался неверный указатель после того, как ник был сменён
Немного проработано поле ввода консоли
Исправлен баг опкода установки ника (0B29) - нельзя было установить ник по указателю на строку
Проработан обработчик опкодов
Сильно улучшена система глобальных переменных - теперь можно регулировать доступ к ним
Начиная с этой версии, все файлы SAMPFUNCS будут находиться в папке "SAMPFUNCS", находящейся в папке с игрой
Новые консольные команды: run, pfree_all, pload, pfree (подробнее на странице Консоль)
Три новых опкода: 0C60, 0C61, 1337

4.0

Опкод 0B78 теперь умеет делать перенос строки на месте символа переноса '\n' (0xA)
Появились хуки входящих и исходящих данных
В настройки SAMPFUNCS добавились два параметра: MultiProcess - позволяет запускать игру многократно, AntiPause - даёт игре возможность работать даже в фоновом режиме
Исправлены баги опкода 0B44 (3D-текст)
Появилась возможность проверить загруженность SAMPFUNCS из скрипта без сторонних дополнений: в глобальной переменной $707 хранится номер релиза SF, если там 0 - значит SF не загружен
Все опкоды SAMPFUNCS будут пропускать возвращаемые значения, если входящее значение параметра будет константой. Таким образом можно пропускать лишние аргументы
Опкод 0B74 будет автоматически обновлять чат
Немного улучшены текстовые поля диалогов: если поле не имеет фокус, то курсор ввода не отображается, а при наличии фокуса он мигает; цветовые теги больше не работают в текстовых полях
SAMPFUNCS будет вести статистику запусков
Несколько новых консольных команд: threads <all|active|inactive>, printv, prints, getresult
152 новых опкода:

  • Опкоды для получения основных адресов памяти SAMP'а
    • (0B7A, 0B7B, 0B7C, 0B7D, 0B7E, 0B7F, 0BAC, 0BAD, 0BAE, 0BAF, 0BB0, 0BB1, 0BB2, 0BB3, 0BB4, 0BB5, 0BB6, 0BB7, 0BB8, 0BB9)
  • Опкоды для получения данных синхронизации игрока
    • (0BBA, 0BBB, 0BBC, 0BBD, 0BBE)
  • Опкоды для отправки различных RPC и пакетов
    • (0BBF, 0BC0, 0BC1, 0BC2, 0BC3, 0BC4, 0BC5, 0BC6, 0BC7, 0BC8, 0BC9, 0BCA, 0BCB, 0BCC, 0BCD, 0BCE, 0BCF, 0BD0, 0BD1, 0BD2, 0BD3, 0BD4)
  • Новые опкоды расширяющие возможности управления диалогами, чатом и таблицей очков
    • (0BD5, 0BD6, 0BD7, 0BD8, 0BD9, 0BDA, 0BDB, 0BDC, 0BDD)
  • Опкоды увеличивающие функциональность RakNet'a (хуки входящих и исходящих данных, опкоды для работы с BitStream, опкоды эмуляции входящих пакетов)
    • (0BE0, 0BE1, 0BE2, 0BE3, 0BE4, 0BE5, 0BE6, 0BE7, 0BE8, 0BE9, 0BEA, 0BEB, 0BEC, 0BED, 0BEE, 0BEF, 0BF0, 0BF1, 0BF2, 0BF3, 0BF4, 0BF5, 0BF6, 0BF7, 0BF8, 0BF9)
  • Опкоды добавляющие возможность работы с глобальными функциями и переменными
    • (0BFC, 0BFD, 0C5F, 0C34, 0C35, 0C36, 0C37, 0C38, 0C39)
  • Опкоды расширяющие возможности рисования примитивов
    • (0C3B, 0C3C, 0C3D, 0C3E, 0C3F, 0C40, 0C41, 0C42, 0C43, 0C44)
  • Опкоды для работы с Textdraw и 3D-текстами SAMP'a
    • (0C45, 0C46, 0C47, 0C48, 0C49, 0C4A, 0C4B, 0C4C, 0C4D, 0C4E, 0C4F, 0C50, 0C51, 0C52, 0C53, 0C54, 0C55, 0C56, 0C57, 0C58, 0C59, 0C5A, 0C5B, 0C5C, 0C5D, 0C5E)
  • Опкоды для работы со строками
    • (0C22, 0C23, 0C24, 0C25, 0C26, 0C27, 0C28, 0C29, 0C2A, 0C2B, 0C2C, 0C2D, 0C2E, 0C2F)
  • 4 опкода для конвертирования матрицы в кватернион и обратно
    • (0C30, 0C31, 0C32, 0C33)
  • И ещё несколько опкодов не имеющих категории
    • (0BDE, 0BDF, 0BFA, 0BFB, 0BFE, 0BFF, 0C3A)
3.2

Исправлен баг с записью дробного значения в BitStream
В опкод 0B8F был добавлен ещё один параметр, регулирующий глубину
Исправлена ошибка распознавания типа диалога в опкоде 0B3C
Команды, зарегистрированные скриптом, автоматически удаляются при завершении его потока
Диалоги, созданные скриптом, автоматически уничтожаются при завершении его потока
Опкод 0C14 (strcmp) теперь сравнивает строки с учетом регистра
Добавлен опкод 0C21 (stricmp) для сравнения строк без учёта регистра
Увеличены размеры буферов строк для всех опкодов
Исправлен баг в опкоде 0B65 - очки не обновлялись при его вызове
Некоторые улучшения рендера: перенос строки при встрече символа переноса '\n' (0xA), увеличены лимиты (максимальный размер шрифта = 100, максимальное количество вертексов для примитивов = 256)
Опкод 0B3C теперь принимает только конкретный ИД диалога (скрипты, использующие его, должны быть обновлены)
Исправлен баг с неверной позицией текстуры при её вращении

3.1.2 Исправления багов
3.1.1 Мелкие исправления
3.1

Добавлены консольные команды cmdlist, clear, getfps, fpscounter, op

Новые опкоды:

  1. 0B76: samp set_chat_input_text 1@
  2. 0B77: samp get_chat_input_text_to 1@
  3. 0B78: log "SAMPFUNCS"
  4. 0B79: samp set_chat_input_enabled 1@
  5. 0BA5: dialog 1@ set_focus_on_control 2@
  6. 0BA6: dialog 1@ set_control 2@ size_XY 3@ 4@
  7. 0BA7: dialog 1@ get_control 2@ size_to 3@ 4@
  8. 0BA8: dialog 1@ set_control 2@ pos_XY 3@ 4@
  9. 0BA9: dialog 1@ get_control 2@ pos_to 3@ 4@
  10. 0BAA: dialog 1@ set_checkbox 2@ color 3@
  11. 0BAB: dialog 1@ is_exists
  12. 0C1D: 4@ = array 1@ element 2@ el_size 3@
  13. 0C1E: array 1@ element 2@ el_size 3@ = 4@
  14. 0C1F: 4@ = string_array 1@ element 2@ size 3@
  15. 0C20: string_array 1@ element 2@ size 3@ = 4@
3.0

Плагин обновлён на 0.3z
Улучшен командный процессор: теперь нет лимита на количество клиент-команд, более стабильный и быстрый
Добавлена внутриигровая консоль
Полностью переделаны диалоги, у SF отныне собственный DXUT
Исправлено много ошибок
Плагин загружается независимо от опкодов 0AF7 и 0AFA
Добавлен патч античита на бессмертие
При запуске осуществляется проверка версии клиента

Много новых опкодов, опкоды для работы с графикой и больше опкодов для работы с диалогами, список всех новых опкодов:

  1. 0B5E: get_cursor_pos 1@ 2@
  2. 0B5F: convert_window_screen_coords 1@ 2@ to_game_screen_coords 3@ 4@
  3. 0B60: convert_game_screen_coords 1@ 2@ to_window_screen_coords 3@ 4@
  4. 0B5C: samp is_player 1@ paused 0B61: samp is_local_player_spawned
  5. 0B62: samp 2@ = player 1@ special_action
  6. 0B63: samp unregister_client_command "mycmd"
  7. 0B64: samp is_player 1@ npc
  8. 0B65: samp 2@ = player 1@ score
  9. 0B8C: samp is_cursor_active
  10. 0B8D: samp set_cursor_mode 1@
  11. 0B8E: samp 1@ = get_cursor_mode
  12. 0B74: samp set_chat_string 1@ text 2@ prefix 3@ color 4@ prefix_color 5@
  13. 0B75: samp get_chat_string 1@ text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
  14. 0B8F: convert_screen_coords 1@ 2@ to_world_3d 3@ 4@ 5@
  15. 0B8A: raknet send_rpc 1@ bit_stream 2@
  16. 0B8B: raknet send bit_stream 1@
  17. 0B66: render argb 1@ to_a 2@ r 3@ g 4@ b 5@
  18. 0B67: render a 1@ r 2@ g 3@ b 4@ to_argb 5@
  19. 0B68: render draw_line_point1 1@ 2@ point2 3@ 4@ width 5@ color 6@
  20. 0B69: render draw_box_pos 1@ 2@ size 3@ 4@ color 5@
  21. 0B6A: render draw_box_with_border_pos 1@ 2@ size 3@ 4@ color 5@ border_size 6@ border_color 7@
  22. 0B6B: render 3@ = font 1@ draw_text 2@ length
  23. 0B6C: render 2@ = font 1@ draw_height
  24. 0B6D: render 4@ = create_font "Arial" height 2@ flags 3@
  25. 0B6E: render release_font 1@
  26. 0B6F: render font 1@ draw_text 2@ pos 3@ 4@ color 5@
  27. 0B70: render draw_polygon_pos 1@ 2@ size 3@ 4@ corners 5@ rotation 6@ color 7@
  28. 0B71: render 2@ = load_texture_from_file 1@
  29. 0B72: render release_texture 1@
  30. 0B73: render draw_texture 1@ pos 2@ 3@ size 4@ 5@ rotation 6@ color 7@
  31. 0B99: dialog 1@ add_listbox id 2@ pos_XY 3@ 4@ size 5@ 6@
  32. 0B9A: dialog 1@ listbox 2@ insert_element 3@ with_data 4@ after 5@
  33. 0B9B: dialog 1@ listbox 2@ selected_element_to 3@ elements_count_to 4@
  34. 0B9C: dialog 1@ listbox 2@ delete_element 3@
  35. 0B9D: dialog 1@ listbox 2@ element 3@ store_text_to 4@ data_to 5@
  36. 0B9E: dialog 1@ checkbox 2@ set_checked 3@
  37. 0B9F: dialog 1@ enable_caption 2@
  38. 0BA0: dialog 1@ is_caption_enabled
  39. 0BA1: dialog 1@ set_minimized 2@
  40. 0BA2: dialog 1@ is_minimized
  41. 0BA3: dialog 1@ control 2@ free
  42. 0BA4: dialog 1@ free
2.6

Исправлена проверка обновлений

Новые опкоды:

  1. 0B5D: samp toggle_cursor true
  2. 0B88: samp dialog 1@ add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
  3. 0B89: samp dialog 1@ get_control 0x14 text_to 3@
  4. 0B92: samp dialog 1@ checkbox 0x13 is_checked
  5. 0B93: samp dialog 1@ set_background_color 0xFF004422
  6. 0B94: samp dialog 1@ set_control 0x14 text_to "This is SPARTA"
  7. 0B95: samp dialog 1@ control 0x10 is_visible
  8. 0B96: samp dialog 1@ add_slider id 0x15 pos_XY 64 24 size 128 32 max 100
  9. 0B97: samp dialog 1@ slider 0x15 get_value_to 2@
  10. 0B98: samp dialog 1@ slider 0x15 set_value_to 120
2.5.1 Исправлена ошибка с опкодом 0AF9.
2.5

Опкоды 0B2C, 0B2D теперь могут читать/записывать память только в модуле "samp.dll"
Исправлена невозможность подключиться к серверу с помощью опкода 0B38
Добавлено больше патчей античита

Новые опкоды:

  1. 0B54: samp 0@ = listbox_items_count
  2. 0B55: convert_3D_coords 1024.0 768.0 32.0 to_screen 0@ 1@
  3. 0B56: set_game_key 1 state 0xFF
  4. 0B57: samp 1@ = player 0@ animation_id
  5. 0B58: samp get_animation_name_to 0@ file_to 1@ by_id 2@
  6. 0B59: samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED"
  7. 0B5A: get_screen_resolution 0@ 1@
  8. 0B5B: samp get_listbox_item 0 text_to 1@
  9. 0B80: samp 1@ = create_dialog "Caption"
  10. 0B81: samp dialog 1@ pop_event_to 1@ control_id_to 2@
  11. 0B82: samp dialog 1@ add_button
  12. 0B54: samp 0@ = listbox_items_count
  13. 0B55: convert_3D_coords 1024.0 768.0 32.0 to_screen 0@ 1@
  14. 0B56: set_game_key 1 state 0xFF
  15. 0B57: samp 1@ = player 0@ animation_id
  16. 0B58: samp get_animation_name_to 0@ file_to 1@ by_id 2@
  17. 0B59: samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED"
  18. 0B5A: get_screen_resolution 0@ 1@
  19. 0B5B: samp get_listbox_item 0 text_to 1@
  20. 0B80: samp 1@ = create_dialog "Caption"
  21. 0B81: samp dialog 1@ pop_event_to 1@ control_id_to 2@
  22. 0B82: samp dialog 1@ add_button id 0x12 text "ButtonText" pos_XY 0 0 size 256 24
  23. 0B83: samp dialog 1@ add_checkbox id 0x13 text "CheckBoxText" pos_XY 0 24 size 256 24
  24. 0B84: samp dialog 1@ set_pos_XY 64 160 size 256 88
  25. 0B85: samp dialog 1@ get_position_to 2@ 3@ size_to 4@ 5@
  26. 0B86: samp dialog 1@ set_visible true
  27. 0B87: samp dialog 1@ is_visible
  28. 0B88: samp dialog 1@ add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
  29. 0B90: samp dialog 1@ control 0x12 set_visible true
  30. 0B91: samp dialog 1@ add_static id 0x01 text "StaticText" pos_XY 0 0 size 160 24
2.4

Исправлены все баги предыдущей версии.
Добавлено 13 опкодов.
Добавлено 17 опкодов для удобной работы с памятью и строками.
Опкод SetGameState теперь использует собственные ИД-ы игрового статуса.
Возвращена и улучшена проверка обновлений плагина.

2.3

Адаптирован под SA-MP 0.3x (R1).
Вшит патч античита.

Новые опкоды:

  1. 0B43: samp cmd_ret
  2. 0B44: samp 0@ = create_3d_text "3d text" color 0xff00ff00 position 0.0 0.0 0.0 view_distance 15.0 show_behind_walls 0 attached_to_player -1 attached_to_vehicle -1
  3. 0B45: samp destroy_3d_text 0@
  4. 0B46: samp 3d_text 0@ defined


Изменена структура опкодов 0B34, 0B35. Отныне 0B34: samp register_client_command "mycommand" to_label @mycommand регистрирует команду на метку, а 0B35: samp 0@ = get_last_command_params возвращает параметры последней введённой команды.

2.2

Исправлена ошибка в опкоде вывода диалога.
Исправлены опкоды записи/чтения памяти модулей.
Временно убрана проверка обновлений.
Последняя версия для 0.3e.

2.1

Исправлены вылеты при запуске.
Мелкие доработки некоторых опкодов.
В опкод 0B35 в качестве второго параметра теперь можно передавать константное значение, чтобы не было необходимости использовать переменную для возврата параметров команды.
Добавлен параметр DrawInfoBar в ini, для настройки показа верхней панели.
Верхняя панель убрана с экрана загрузки игры и перенесена в меню паузы.

2.0

Добавлено 2 опкода для работы с диалогами.
Добавлена возможность отправлять пакеты и RPC серверу при помощи шести новых опкодов.
Оптимизирован код.

1.5

Добавлены опкоды:

  1. 0B38: samp connect_to_server 0@ port 1@
  2. 0B39: samp get_current_server_address 0@ port 1@
  3. 0B3A: samp 0@ = get_current_server_name
  4. 0C0A: math 1@ = ceil 0@
  5. 0C0B: math 1@ = floor 0@
1.4

Добавлены математические опкоды:

  1. 0C00: math 1@ = abs 0@
  2. 0C01: math 1@ = radian_to_angle 0@
  3. 0C02: math 1@ = angle_to_radian 0@
  4. 0C03: math 1@ = sine 0@
  5. 0C04: math 1@ = arcsine 0@
  6. 0C05: math 1@ = cosine 0@
  7. 0C06: math 1@ = arccosine 0@
  8. 0C07: math 1@ = tangent 0@
  9. 0C08: math 1@ = arctangent 0@
  10. 0C09: math 1@ = power 0@ 3.0
1.3

Добавлено ведение лога действий плагина.

Добавлены опкоды:

  1. 0B36: samp 1@ = get_player_nickname 0@
  2. 0B37: samp 1@ = get_player_color 0@
1.2

Исправлен опкод 0B2A: samp 1@ = get_player_ping 0@ - в некоторых случаях опкод возвращал неверное значение

Добавлены опкоды для работы с командами чата:

  1. 0B34: samp 0@ = register_client_command "text"
  2. 0B35: samp is_command_typed 0@ params 1@
1.1

Проект перенесён на новую основу, переписана архитектура. Плагин больше не зависит от системных библиотек

Обновлены опкоды:

  1. 0B24: samp 1@ = get_player_ptr 0@ (GetPlayerPtr) - можно получить поинтер на локальную структуру
  2. 0B2A, 0B23, 0B30, 0B31, 0AFB - улучшена стабильность работы
  3. 0AFE: samp send_death_by_player 0@ with_reason 10 - теперь можно выбрать ИД игрока и причину смерти

Добавлены 2 новых опкода:

  1. 0B32: samp send_spawn
  2. 0B33: samp send_damage_vehicle 0@ panel 123456 doors 654321 lights 255 tires 255
1.03

Исправлен вылет при спавне, на серверах, где отключена отрисовка маркеров отдалённых игроков
Исправлен опкод 0B2A: samp 1@ = get_player_ping 0@, теперь можно получить свой пинг.

1.01

Новые опкоды:

  1. 0B23: samp is_player_connected 0@
  2. 0B24: samp 1@ = get_remote_player_ptr 0@
  3. 0B2A: samp 1@ = get_player_ping 0@
  4. 0B2B: samp 1@ = get_player_id_by_actor_handle 0@
  5. 0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@
  6. 0B2D: write_module_memory "samp.dll" offset 0x63700 value 0xC390 size 2
  7. 0B2E: 4@ = read_module_memory "samp.dll" offset 0x63700 size 2
  8. 0B2F: samp get_streamed_out_player_pos 0@ to 1@ 2@ 3@
  9. 0B30: samp send_enter_vehicle 0@ as_passenger false
  10. 0B31: samp send_exit_vehicle 0@

Улучшены опкоды:

  1. 0AF6: samp spawn_player - при спавне на сервер отправляется пакет запроса на спавн, при первом спавне отныне сервер не кикает
  2. 0AFC: samp send_scm_event - добавлена возможность выбора ида машины
  3. 0AF8: samp add_message_to_chat, 0AF9: samp say_msg, 0B29: samp set_local_name - полностью поддерживают форматирование.
0.8 Адаптирован под SA-MP 0.3e
0.7 Первый публичный релиз для SA-MP 0.3d