Версия | Изменения |
5.4.1-final | |
5.4.0-final | |
5.3.3 | |
5.3.2 | |
5.3.1 | |
5.3 |
Исправления:
Изменения:
Нововведения:
|
5.2.2 |
Исправления:
Изменения в Game API:
Новое:
|
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 новых опкода:
|
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
Новые опкоды:
0B76: samp set_chat_input_text 1@
0B77: samp get_chat_input_text_to 1@
0B78: log "SAMPFUNCS"
0B79: samp set_chat_input_enabled 1@
0BA5: dialog 1@ set_focus_on_control 2@
0BA6: dialog 1@ set_control 2@ size_XY 3@ 4@
0BA7: dialog 1@ get_control 2@ size_to 3@ 4@
0BA8: dialog 1@ set_control 2@ pos_XY 3@ 4@
0BA9: dialog 1@ get_control 2@ pos_to 3@ 4@
0BAA: dialog 1@ set_checkbox 2@ color 3@
0BAB: dialog 1@ is_exists
0C1D: 4@ = array 1@ element 2@ el_size 3@
0C1E: array 1@ element 2@ el_size 3@ = 4@
0C1F: 4@ = string_array 1@ element 2@ size 3@
0C20: string_array 1@ element 2@ size 3@ = 4@
|
3.0 |
Плагин обновлён на 0.3z
Улучшен командный процессор: теперь нет лимита на количество клиент-команд, более стабильный и быстрый
Добавлена внутриигровая консоль
Полностью переделаны диалоги, у SF отныне собственный DXUT
Исправлено много ошибок
Плагин загружается независимо от опкодов 0AF7 и 0AFA
Добавлен патч античита на бессмертие
При запуске осуществляется проверка версии клиента
Много новых опкодов, опкоды для работы с графикой и больше опкодов для работы с диалогами, список всех новых опкодов:
0B5E: get_cursor_pos 1@ 2@
0B5F: convert_window_screen_coords 1@ 2@ to_game_screen_coords 3@ 4@
0B60: convert_game_screen_coords 1@ 2@ to_window_screen_coords 3@ 4@
0B5C: samp is_player 1@ paused 0B61: samp is_local_player_spawned
0B62: samp 2@ = player 1@ special_action
0B63: samp unregister_client_command "mycmd"
0B64: samp is_player 1@ npc
0B65: samp 2@ = player 1@ score
0B8C: samp is_cursor_active
0B8D: samp set_cursor_mode 1@
0B8E: samp 1@ = get_cursor_mode
0B74: samp set_chat_string 1@ text 2@ prefix 3@ color 4@ prefix_color 5@
0B75: samp get_chat_string 1@ text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
0B8F: convert_screen_coords 1@ 2@ to_world_3d 3@ 4@ 5@
0B8A: raknet send_rpc 1@ bit_stream 2@
0B8B: raknet send bit_stream 1@
0B66: render argb 1@ to_a 2@ r 3@ g 4@ b 5@
0B67: render a 1@ r 2@ g 3@ b 4@ to_argb 5@
0B68: render draw_line_point1 1@ 2@ point2 3@ 4@ width 5@ color 6@
0B69: render draw_box_pos 1@ 2@ size 3@ 4@ color 5@
0B6A: render draw_box_with_border_pos 1@ 2@ size 3@ 4@ color 5@ border_size 6@ border_color 7@
0B6B: render 3@ = font 1@ draw_text 2@ length
0B6C: render 2@ = font 1@ draw_height
0B6D: render 4@ = create_font "Arial" height 2@ flags 3@
0B6E: render release_font 1@
0B6F: render font 1@ draw_text 2@ pos 3@ 4@ color 5@
0B70: render draw_polygon_pos 1@ 2@ size 3@ 4@ corners 5@ rotation 6@ color 7@
0B71: render 2@ = load_texture_from_file 1@
0B72: render release_texture 1@
0B73: render draw_texture 1@ pos 2@ 3@ size 4@ 5@ rotation 6@ color 7@
0B99: dialog 1@ add_listbox id 2@ pos_XY 3@ 4@ size 5@ 6@
0B9A: dialog 1@ listbox 2@ insert_element 3@ with_data 4@ after 5@
0B9B: dialog 1@ listbox 2@ selected_element_to 3@ elements_count_to 4@
0B9C: dialog 1@ listbox 2@ delete_element 3@
0B9D: dialog 1@ listbox 2@ element 3@ store_text_to 4@ data_to 5@
0B9E: dialog 1@ checkbox 2@ set_checked 3@
0B9F: dialog 1@ enable_caption 2@
0BA0: dialog 1@ is_caption_enabled
0BA1: dialog 1@ set_minimized 2@
0BA2: dialog 1@ is_minimized
0BA3: dialog 1@ control 2@ free
0BA4: dialog 1@ free
|
2.6 |
Исправлена проверка обновлений
Новые опкоды:
0B5D: samp toggle_cursor true
0B88: samp dialog 1@ add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
0B89: samp dialog 1@ get_control 0x14 text_to 3@
0B92: samp dialog 1@ checkbox 0x13 is_checked
0B93: samp dialog 1@ set_background_color 0xFF004422
0B94: samp dialog 1@ set_control 0x14 text_to "This is SPARTA"
0B95: samp dialog 1@ control 0x10 is_visible
0B96: samp dialog 1@ add_slider id 0x15 pos_XY 64 24 size 128 32 max 100
0B97: samp dialog 1@ slider 0x15 get_value_to 2@
0B98: samp dialog 1@ slider 0x15 set_value_to 120
|
2.5.1 | Исправлена ошибка с опкодом 0AF9. |
2.5 |
Опкоды 0B2C, 0B2D теперь могут читать/записывать память только в модуле "samp.dll"
Исправлена невозможность подключиться к серверу с помощью опкода 0B38
Добавлено больше патчей античита
Новые опкоды:
0B54: samp 0@ = listbox_items_count
0B55: convert_3D_coords 1024.0 768.0 32.0 to_screen 0@ 1@
0B56: set_game_key 1 state 0xFF
0B57: samp 1@ = player 0@ animation_id
0B58: samp get_animation_name_to 0@ file_to 1@ by_id 2@
0B59: samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED"
0B5A: get_screen_resolution 0@ 1@
0B5B: samp get_listbox_item 0 text_to 1@
0B80: samp 1@ = create_dialog "Caption"
0B81: samp dialog 1@ pop_event_to 1@ control_id_to 2@
0B82: samp dialog 1@ add_button
0B54: samp 0@ = listbox_items_count
0B55: convert_3D_coords 1024.0 768.0 32.0 to_screen 0@ 1@
0B56: set_game_key 1 state 0xFF
0B57: samp 1@ = player 0@ animation_id
0B58: samp get_animation_name_to 0@ file_to 1@ by_id 2@
0B59: samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED"
0B5A: get_screen_resolution 0@ 1@
0B5B: samp get_listbox_item 0 text_to 1@
0B80: samp 1@ = create_dialog "Caption"
0B81: samp dialog 1@ pop_event_to 1@ control_id_to 2@
0B82: samp dialog 1@ add_button id 0x12 text "ButtonText" pos_XY 0 0 size 256 24
0B83: samp dialog 1@ add_checkbox id 0x13 text "CheckBoxText" pos_XY 0 24 size 256 24
0B84: samp dialog 1@ set_pos_XY 64 160 size 256 88
0B85: samp dialog 1@ get_position_to 2@ 3@ size_to 4@ 5@
0B86: samp dialog 1@ set_visible true
0B87: samp dialog 1@ is_visible
0B88: samp dialog 1@ add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
0B90: samp dialog 1@ control 0x12 set_visible true
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).
Вшит патч античита.
Новые опкоды:
0B43: samp cmd_ret
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
0B45: samp destroy_3d_text 0@
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 |
Добавлены опкоды:
0B38: samp connect_to_server 0@ port 1@
0B39: samp get_current_server_address 0@ port 1@
0B3A: samp 0@ = get_current_server_name
0C0A: math 1@ = ceil 0@
0C0B: math 1@ = floor 0@
|
1.4 |
Добавлены математические опкоды:
0C00: math 1@ = abs 0@
0C01: math 1@ = radian_to_angle 0@
0C02: math 1@ = angle_to_radian 0@
0C03: math 1@ = sine 0@
0C04: math 1@ = arcsine 0@
0C05: math 1@ = cosine 0@
0C06: math 1@ = arccosine 0@
0C07: math 1@ = tangent 0@
0C08: math 1@ = arctangent 0@
0C09: math 1@ = power 0@ 3.0
|
1.3 |
Добавлено ведение лога действий плагина.
Добавлены опкоды:
0B36: samp 1@ = get_player_nickname 0@
0B37: samp 1@ = get_player_color 0@
|
1.2 |
Исправлен опкод 0B2A: samp 1@ = get_player_ping 0@ - в некоторых случаях опкод возвращал неверное значение
Добавлены опкоды для работы с командами чата:
0B34: samp 0@ = register_client_command "text"
0B35: samp is_command_typed 0@ params 1@
|
1.1 |
Проект перенесён на новую основу, переписана архитектура. Плагин больше не зависит от системных библиотек
Обновлены опкоды:
0B24: samp 1@ = get_player_ptr 0@ (GetPlayerPtr) - можно получить поинтер на локальную структуру
0B2A, 0B23, 0B30, 0B31, 0AFB - улучшена стабильность работы
0AFE: samp send_death_by_player 0@ with_reason 10 - теперь можно выбрать ИД игрока и причину смерти
Добавлены 2 новых опкода:
0B32: samp send_spawn
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 |
Новые опкоды:
0B23: samp is_player_connected 0@
0B24: samp 1@ = get_remote_player_ptr 0@
0B2A: samp 1@ = get_player_ping 0@
0B2B: samp 1@ = get_player_id_by_actor_handle 0@
0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@
0B2D: write_module_memory "samp.dll" offset 0x63700 value 0xC390 size 2
0B2E: 4@ = read_module_memory "samp.dll" offset 0x63700 size 2
0B2F: samp get_streamed_out_player_pos 0@ to 1@ 2@ 3@
0B30: samp send_enter_vehicle 0@ as_passenger false
0B31: samp send_exit_vehicle 0@
Улучшены опкоды:
0AF6: samp spawn_player - при спавне на сервер отправляется пакет запроса на спавн, при первом спавне отныне сервер не кикает
0AFC: samp send_scm_event - добавлена возможность выбора ида машины
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 |