1. BanDiTuK04.05.2025 в 10:50от
Загрузка...

[CLEO PLUGIN] SAMPFUNCS 2.6

Тема в разделе "Grand Theft Auto", создана пользователем HacKeRoK777, 12.07.2013.

  1. HacKeRoK777

    HacKeRoK777

    Статус:
    Оффлайн
    Регистрация:
    10.07.13
    Сообщения:
    65
    Репутация:
    1 +/-
    CLEO PLUGIN
    SAMPFUNCS

    Текущая версия плагина - 2.6 (0.3x)
    Текущее количество опкодов - 120


    Описание:
    Данный плагин добавляет некоторое количество новых опкодов для взаимодействия с SA:MP через CLEO-скрипты. А так же возможность работать с памятью samp.dll и другими модулями напрямую из скрипта. Плагин регулярно обновляется и улучшается. В этой теме вы можете узнать всю необходимую информацию о плагине, скачать его, предложить что-нибудь новое, сообщить о каких-либо недостатках и задавать вопросы, касающиеся плагина.

    История изменений:
    0.7:
    - Первый публичный релиз для SA-MP 0.3d

    0.8:
    - Адаптирован под SA-MP 0.3e

    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 - полностью поддерживают форматирование

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

    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.2:
    - Исправлен опкод 0B2A: samp 1@ = get_player_ping 0@ - в некоторых случаях опкод возвращал неверное значение
    - Добавлены опкоды для работы с командами чата:
    0B34: samp 0@ = register_client_command "text"
    0B35: samp is_command_typed 0@ params 1@

    1.3:
    - Добавлено ведение лога действий плагина.
    - Добавлены опкоды:
    0B36: samp 1@ = get_player_nickname 0@
    0B37: samp 1@ = get_player_color 0@

    1.4:
    - Добавлены математические опкоды:
    0C00: math 1@ = abs 0@ // (float)
    0C01: math 1@ = radian_to_angle 0@ // (float)
    0C02: math 1@ = angle_to_radian 0@ // (float)
    0C03: math 1@ = sine 0@ // (float)
    0C04: math 1@ = arcsine 0@ // (float)
    0C05: math 1@ = cosine 0@ // (float)
    0C06: math 1@ = arccosine 0@ // (float)
    0C07: math 1@ = tangent 0@ // (float)
    0C08: math 1@ = arctangent 0@ // (float)
    0C09: math 1@ = power 0@ 3.0 // (float)

    1.5:
    - Добавлено 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@ // (float)
    0C0B: math 1@ = floor 0@ // (float)
    - Добавлена система проверки обновлений.
    - Добавлен файл настроек плагина.

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

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

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

    2.3:
    - Адаптирован под SA-MP 0.3x (R1).
    - Вшит патч античита.
    - Новые опкоды:
    0B43: samp cmd_ret, 0B44: samp 0@ = create_3d_text ..., 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.4:
    - Исправлены все баги предыдущей версии.
    - Добавлено 13 опкодов.
    - Добавлено 17 опкодов для удобной работы с памятью и строками. (Информацию о них можно найти в интернете, исходя из названий опкодов)
    - Опкод 0B27: samp set_gamestate теперь использует собственные ИД-ы игрового статуса.
    - Возвращена и улучшена проверка обновлений плагина.

    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 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.5.1:
    - Исправлен опкод 0AF9.

    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@ // IF AND SET
    0B92: samp dialog 1@ checkbox 0x13 is_checked // IF AND SET
    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

    Список всех опкодов ( Опкод // Описание // Параметры ):

    0AF6: samp spawn_player // Отправляет игрока на спавн // Параметров не имеет
    0AF7: get_samp_base_to 0@ // IF and SET // Получает базовый адрес "samp.dll", использование этого опкода необходимо в каждом скрипте, использующем плагин. // Выходные данные: 0@ - базовый адрес "samp.dll"
    0AF8: samp add_message_to_chat "%d + %d = %d" color 0xFF61BB 4 6 10 // Добавляет сообщение с текстом "Text" и цветом 0xFF61BB в SAMP-чат (опкод поддерживает форматирование) // Входные данные: "Text" - текст сообщения, 0xFF61BB - цвет сообщения, параметры для форматирования
    0AF9: samp say_msg "I AM NOOB! LOL" // Отправляет сообщение с текстом "I AM NOOB! LOL" на сервер (опкод поддерживает форматирование) // Входные данные: "I AM NOOB! LOL" - текст сообщения, параметры для форматирования
    0AFA: is_samp_structures_available // Данный опкод используется для проверки полной загруженности SAMP, его использование необходимо в каждом скрипте, использующем плагин. // Параметров не имеет
    0AFB: samp request_class_id 1@ // Изменяет класс игрока на выбранный, для полной смены нужно заспавниться. // Входные данные: 1@ - новый класс
    0AFC: samp send_scm_event 0@ event_id 3 params 126 126 // Отправляет на сервер пакет о смене параметров транспорта (цвет, апгрейды, покрасочные работы) // Входные данные: 0@ - SAMP-Ид транспортного средства, 3 - тип (1 - покрасочная работа, 2 - компонент, 3 - цвет), 126 126 - параметры
    0AFD: samp set_special_action 5 // Устанавливает игроку специальное действие (курить, пить, ссать и т.п.) // Входные данные: 5 - ид специального действия
    0AFE: samp send_death_by_player 0@ with_reason 10 // Отправляет на сервер пакет о смерти от определённого игрока и с заданной причиной // Входные данные: 0@ - ид игрока, 10 - причина смерти
    0AFF: samp 3@ = car_handle_from_samp_carid 87 // Получает хендл машины по её SAMP-Иду // Входные данные: 87 - SAMP-ID машины. Выходные данные: 3@ - хендл машины
    0B20: samp 4@ = actor_handle_from_samp_playerid 5 // Получает хендл актёра по SAMP-Иду игрока // Входные данные: 5 - SAMP-ID игрока. Выходные данные: 3@ - хендл актёра
    0B21: samp is_chat_opened // Проверяет статус открытости чата, используется только в качестве проверки. // Параметров не имеет
    0B22: samp set_sendrate 2 to 0 // Устанавливает задержку отправки клиентом, выбранного типа, пакетов // Входные данные: 2 - тип (пешком = 1, в машине = 2, камера = 3), 0 - задержка в мс
    0B27: samp set_gamestate 26 // Устанавливает статус подключения к серверу // Входные данные: 26 - статус (GAMESTATE_AWAIT_JOIN = 30, GAMESTATE_RESTARTING = 33, GAMESTATE_WAIT_CONNECT = 26, GAMESTATE_CONNECTING = 28, GAMESTATE_CONNECTED = 29)
    0B28: samp disconnect_with_reason 0 // Отключает от сервера с заданной причиной // 0 - обычное отключение, 1 - таймаут
    0B29: samp set_local_name "blasthack.net" // Устанавливает ник игроку на "blasthack.net" (опкод поддерживает форматирование) // Входные данные: "blasthack.net" - новый ник
    - Новые (v1.01)
    0B23: samp is_player_connected 0@ // Проверяет, подключен ли игрок с идом 0@ к серверу, используется только в качестве проверки // Входные данные: 0@ - ид игрока
    0B24: samp 1@ = get_remote_player_ptr 0@ // Получает адрес на структуру игрока, в ней SAMP хранит все локальные данные о игроке // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - указатель на структуру игрока
    0B2A: samp 1@ = get_player_ping 0@ // Возвращает пинг игрока // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - пинг игрока
    0B2B: samp 1@ = get_player_id_by_actor_handle 0@ // Возвращает SAMP-ид игрока по хендлу актёра // Входные данные: 0@ - хендл актёра. Выходные данные: 1@ - ид игрока
    0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@ // Возвращает SAMP-ид машины по её хендлу // Входные данные: 0@ - хендл машины. Выходные данные: 1@ - ид машины
    0B2D: write_module_memory "samp.dll" offset 0x63700 value 0xC390 size 2 // Записывает в память указанного модуля заданное значение с нужным количеством байт // Входные данные: "samp.dll" - имя модуля, 0x63700 - оффсет, 0xC390 - новое значение, 2 - размер (максимум 4, минимум 1)
    0B2E: 4@ = read_module_memory "samp.dll" offset 0x63700 size 2 // Читает участок памяти из указанного модуля // Входные данные: "samp.dll" - имя модуля, 0x63700 - оффсет, 2 - размер (максимум 4, минимум 1). Выходные данные: 4@ - прочитанное значение
    0B2F: samp get_streamed_out_player_pos 0@ to 1@ 2@ 3@ // Получает позицию удалённого игрока // Входные данные: 0@ - ид игрока. Выходные данные: 1@ 2@ 3@ - позиция
    0B30: samp send_enter_vehicle 0@ as_passenger false // Отправляет пакет о посадке в машину, этот опкод не синхронизирует машину, но может быть полезен при написании обходов античита на всякие "КарХако-подобные" вещи // Входные данные: 0@ - SAMP-ид машины, false - тип посадки (false - водительское место, true - пассажирское)
    0B31: samp send_exit_vehicle 0@ // Отправляет пакет о выходе из машины // Входные данные: 0@ - SAMP-ид машины
    - Новые (v1.1)
    0B32: samp send_spawn // Отправляет пакет о спавне // Параметров не имеет
    0B33: samp send_damage_vehicle 0@ panel 123456 doors 654321 lights 255 tires 0 // Отправляет пакет о повреждении компонентов ТС // Входные данные: 0@ - SAMP-ID машины, 123456 - статус повреждения передней и задней части, 654321 - статус повреждения дверей, 255 - огней, 0 - покрышек
    - Новые (v1.2)
    0B34: samp 0@ = register_client_command "text" // Регистрирует команду "text", возвращая её уникальный идентификатор // Входные данные: "text" - команда. Выходные данные 0@ - ИД команды, должен быть сохранён (используется в проверке 0B35: samp is_command_typed ...)
    0B35: samp is_command_typed 0@ params 1@ // Проверяет введённость команды, используется только в качестве проверки. Возвращает указатель на строку параметров. // Входные данные: 0@ - уникальный ИД команды. Выходные данные 1@ - указатель на строку параметров, (то, что было введено после команды, пример: "/command 10" - "10" - это параметры команды). Могут быть отфильтрованы опкодом 0AD4:
    - Новые (v1.3)
    0B36: samp 1@ = get_player_nickname 0@ // Возвращает указатель на ник игрока с ИД 0@ // Входные данные: 0@ - ИД игрока. Выходные данные: 1@ - указатель на строку, содержащую ник игрока.
    0B37: samp 1@ = get_player_color 0@ // Возвращает цвет ника игрока с ИД 0@ // Входные данные: 0@ - ИД игрока. Выходные данные: 1@ - цвет ника игрока.
    - Новые (v1.5)
    0B38: samp connect_to_server 0@ port 1@ // Устанавливает соединение с заданным SA:MP-сервером // Входные данные: 0@ - IP сервера (строка/указатель на строку), 1@ - порт сервера.
    0B39: samp get_current_server_address 0@ port 1@ // Получает адрес текущего сервера // Выходные данные: 0@ - IP сервера, 1@ - порт сервера.
    0B3A: samp 0@ = get_current_server_name // Возвращает название текущего сервера // Выходные данные: 0@ - название сервера
    - Новые (v2.0)
    0B3B: samp show_dialog id 1 caption "Example" text "Message box example." button_1 "Ok" button_2 "" style 0 // Показывает локальный SA:MP-диалог с установленными параметрами // Входные данные: "Example" - заголовок, "Message box example." - текст, "Ok" - текст первой кнопки "" - текст второй кнопки (если текстовое значение пустое, диалог будет содержать лишь одну кнопку), 0 - стиль диалога
    0B3C: samp dialog_respond 5 button 0@ list_item 1@ input_text 2@ // Проверяет, был ли закрыт диалог и возвращает все входные параметры // Выходные данные: 0@ - ид нажатой кнопки (1 - левая, 2 - правая), 1@ - выбранный элемент из списка (вернёт -1, если диалог не имеет элементов), 2@ - текст, который был введён в окно ввода.
    0B3D: raknet 0@ = new_bit_stream // Выделяет память под новую переменную BitStream, это необходимо для отправки пакетов серверу // Выходные данные: 0@ - указатель на созданный объект BitStream.
    0B3E: raknet delete_bit_stream 0@ // Освобождает выделенную память под BitStream, необходимо делать каждый раз, когда BitStream перестаёт быть нужным, во избежание утечек памяти // Входные данные: 0@ - указатель на объект BitStream.
    0B3F: raknet reset_bit_stream 0@ // Сбрасывает все данные уже созданного объекта BitStream, оставляя возможность использовать его снова // Входные данные: 0@ - указатель на объект BitStream.
    0B40: raknet bit_stream 0@ write 1@ type BS_TYPE_INT size 4 // Пишет данные в существующий объект BitStream // Входные данные: 0@ - указатель на объект BitStream, 1@ - значение, BS_TYPE_INT - тип, 4 - размер (можно указать любой, если тип не является строкой или массивом).
    0B41: raknet send_rpc RPC_DEATH bit_stream 1@ priority PRIORITY_MEDIUM reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false // Отправляет RPC на сервер // Входные данные: RPC_DEATH - ид RPC, 1@ - указатель на объект BitStream, PRIORITY_MEDIUM - приоритет пакета, RELIABLE_SEQUENCED - надёжность пакета, 0, false - точного назначения этих двух параметров не знаю, не вдавался в подробности, потому-что они нам не нужны.
    0B42: raknet send bit_stream 0@ priority PRIORITY_MEDIUM reliability RELIABLE_SEQUENCED ordering_channel 0 // Отправляет пакет на сервер // Входные данные: 0@ - указатель на объект BitStream, PRIORITY_MEDIUM - приоритет пакета, RELIABLE_SEQUENCED - надёжность пакета.
    - Измененные (v2.3)
    0B34: samp register_client_command "mycommand" to_label @MyCommand // Регистрирует команду "mycommand" на метку @MyCommand (при вводе этой команды выполнится код по метке @MyCommand, выход из тела кода осуществляется опкодом 0B43) // Входные данные: "mycommand" - команда, @MyCommand - метка, на которую будет зарегистрирована команда.
    0B35: samp 0@ = get_last_command_params // Возвращает указатель на строку параметров. // Выходные данные 1@ - указатель на строку параметров, (то, что было введено после команды, пример: "/command 10" - "10" - это параметры команды). Параметры могут быть отфильтрованы опкодом 0AD4
    - Новые (v2.3)
    0B43: samp cmd_ret // Указывает на конец кода команды, возвращает из тела команды обратно в код скрипта. // Параметров не имеет
    0B44: samp 0@ = create_3d_text "dafuq" color 0xFFFF00FF position 1@ 2@ 3@ view_distance 50.0 show_behind_walls true attached_to_player -1 attached_to_vehicle -1 // Создаёт 3D-текст SA:MP'a со всеми возможными свойствами. Может быть присоединен к игроку или транспорту. // Входные данные: "dafuq" - текст, 0xFFFF00FF - цвет, 1@ 2@ 3@ - позиция (если текст не присоединен к объекту, или смещение относительно центра, если присоединен), 50.0 - дистанция, на которой 3D-текст будет виден, true - будет ли 3D-текст виден через стены, -1 - ид игрока/транспорта, к которому будет прикреплён 3D-текст. Выходные данные: 0@ - хендл(ид) 3D-текста.
    0B45: samp destroy_3d_text 0@ // Уничтожает 3D-текст. // Входные данные: 0@ - хендл(ид) 3D-текста.
    0B46: samp 3d_text 0@ defined // Проверяет, существует ли 3D-текст. // Входные данные: 0@ - хендл(ид) 3D-текста.
    - Новые (v2.4)
    0B47: samp close_current_dialog_with_button 1 // Закрывает текущий диалог с возможностью выбора кнопки, которой он был закрыт. Информация о закрытии отправляется на сервер, если диалог был создан сервером. // Входные данные: 1 - ИД кнопки (1 - левая, 0 - правая).
    0B48: samp 0@ = get_current_dialog_list_item // Возвращает ИД выбранного пункта в диалоге-списке. // Выходные данные: 0@ - ИД выбранного пункта.
    0B49: samp set_current_dialog_list_item 0@ // Устанавливает текущий пункт в диалоге-списке. // Входные данные: 0@ - ИД выбираемого пункта.
    0B4A: samp 0@ = get_current_dialog_editbox_text // Копирует в буффер содержимое окна ввода текста диалога. // Входные данные: 0@ - указатель на выделенный участок памяти.
    0B4B: samp set_current_dialog_editbox_text "Text" // Устанавливает текст для окна ввода диалога. // Входные данные: "Text" - новый текст.
    0B4C: samp is_dialog_active 0@ // Проверяет, является ли открытым диалог с ИД'ом 0@, если в качестве ИД'а передать параметр -1, то опкод вернёт истинное значение проверки для любого открытого диалога. // Входные данные: 0@ - ИД диалога.
    0B4D: samp 0@ = get_current_dialog_type // Возвращает тип текущего диалога // Выходные данные: 0@ - ИД типа диалога.
    0B4E: samp 0@ = get_current_dialog_id // Возвращает ИД текущего диалога // Выходные данные: 0@ - ИД диалога.
    0B4F: samp 0@ = get_gamestate // Возвращает статус присоединения к серверу // Выходные данные: 0@ - ИД статуса.
    0B50: samp 1@ = object_handle_by_id 0@ // Получает хендл объекта по его SAMP-ИД'у. // Входные данные: 0@ - SAMP-ID объекта. Выходные данные: 1@ - хендл объекта.
    0B51: samp 1@ = pickup_handle_by_id 0@ // Получает хендл пикапа по его SAMP-ИД'у. // Входные данные: 0@ - SAMP-ID пикапа. Выходные данные: 1@ - хендл пикапа.
    0B52: samp 1@ = object_id_by_handle 0@ // Получает SAMP-ИД объекта по его хендлу. // Входные данные: 0@ - хендл объекта. Выходные данные: 1@ - SAMP-ID объекта.
    0B53: samp 1@ = pickup_id_by_handle 0@ // Получает SAMP-ИД пикапа по его хендлу. // Входные данные: 0@ - хендл пикапа. Выходные данные: 1@ - SAMP-ID пикапа.
    0C0C: 0@ = struct 1@ offset 0x10 size 4 // Читает значение элемента структуры, размером 4 байта и смещением на 0x10 байт, по адресу 1@. // Входные данные: 1@ - адрес начала структуры, 0x10 - смещение в байтах, 4 - размер в байтах (от 1 до 4). Выходные данные: 0@ - значение элемента.
    0C0D: struct 1@ offset 0x10 size 4 = 0@ // Записывает значение элемента структуры, размером 4 байта и смещением на 0x10 байт, по адресу 1@. // Входные данные: 1@ - адрес начала структуры, 0x10 - смещение в байтах, 4 - размер в байтах (от 1 до 4), 0@ - записываемое значение.
    0C0E: 0@ = array 1@ element 2@ // Читает элемент массива под номером 2@ по адресу 1@, учитывая что каждый элемент в массиве равен четырём байтам. // Входные данные: 1@ - адрес начала массива, 2@ - номер элемента массива. Выходные данные: 0@ - значение элемента массива.
    0C0F: array 1@ element 2@ = 0@ // Записывает значение в элемент массива под номером 2@ по адресу 1@, учитывая что каждый элемент в массиве равен четырём байтам. // Входные данные: 1@ - адрес начала массива, 2@ - номер элемента массива, 0@ - записываемое значение элемента массива.
    - Новые (v2.5)
    0B54: samp 0@ = listbox_items_count // Возвращает количество пунктов диалога со списком. // Выходные данные: 0@ - количество пунктов.
    0B55: convert_3D_coords 1024.0 768.0 32.0 to_screen 0@ 1@ // Конвертирует мировые 3D-координаты в экранные координаты. // Входные данные: 1024.0 768.0 32.0 - 3D координаты мира. Выходные данные: 0@ 1@ - экранные координаты.
    0B56: set_game_key 1 state 0xFF // Устанавливает игровой клавише заданный статус. // Входные данные: 1 - ид клавиши, 0xFF - статус (0 - отжата, 0xFF - нажата).
    0B57: samp 1@ = player 0@ animation_id // Возвращает ид анимации игрока по его иду. // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - ид анимации игрока.
    0B58: samp get_animation_name_to 0@ file_to 1@ by_id 2@ // Записывает в буфер имя анимации и её файл по иду. // Входные данные: 0@ - указатель на выделенный участок памяти под название, 1@ - указатель на буфер для названия файла, 2@ - ид анимации.
    0B59: samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED" // Возвращает ид анимации её по имени. // Входные данные: "IDLE_STANCE" "PED" - имя и файл анимации. Выходные данные: 0@ - ид анимации.
    0B5A: get_screen_resolution 0@ 1@ // Возвращает размеры окна игры. // Выходные данные: 0@, 1@ - размеры окна.
    0B5B: samp get_listbox_item 0 text_to 1@ // Записывает в буфер по указателю 1@ текст пункта листбокса. // Входные данные: 0 - ид элемента, 1@ - указатель на буфер.
    0B80: samp 1@ = create_dialog "Caption" // Создаёт диалог с названием "Caption" и возвращает указатель на его объект. //
    0B81: samp dialog 1@ pop_event_to 1@ control_id_to 2@ // Записывает последнее событие диалога 1@ в переменную 2@ и ид участника в переменную 3@, возвращает FALSE, если события нет. // Входные данные: 1@ - указатель на объект диалога. Выходные данные: 2@ - ид события, 2@ - ид компонента.
    0B82: samp dialog 1@ add_button id 0x12 text "ButtonText" pos_XY 0 0 size 256 24 // Создаёт кнопку с текстом "ButtonText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x12 - ид компонента, "ButtonText" - текст компонента, 0 0 - позиция, 256 24 - размеры.
    0B83: samp dialog 1@ add_checkbox id 0x13 text "CheckBoxText" pos_XY 0 24 size 256 24 // Создаёт чекбокс с текстом "ButtonText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x13 - ид компонента, "CheckBoxText" - текст компонента, 0 24 - позиция, 256 24 - размеры.
    0B84: samp dialog 1@ set_pos_XY 64 160 size 256 88 // Устанавливает позицию и размеры диалога. // Входные данные: 1@ - диалог, 64 160 - новая позиция, 256 88 - новый размер.
    0B85: samp dialog 1@ get_position_to 2@ 3@ size_to 4@ 5@ // Получает позицию и размер диалога. // Входные данные: 1@ - диалог. Выходные данные: 2@ 3@ - позиция, 4@ 5@ - размер.
    0B86: samp dialog 1@ set_visible true // Устанавливает видимость диалога. // Входные данные: 1@ - диалог, true - логическое да/нет (видим/не видим).
    0B87: samp dialog 1@ is_visible // Проверяет, видим ли диалог. // Входные данные: 1@ - диалог.
    0B90: samp dialog 1@ control 0x12 set_visible true // Устанавливает видимость компонента диалога. // Входные данные: 1@ - диалог, 0x12 - ид компонента, true - логическое да/нет (видим/не видим).
    0B91: samp dialog 1@ add_static id 0x01 text "StaticText" pos_XY 0 0 size 160 24 // Создаёт статичный текст "StaticText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x01 - ид компонента, "StaticText" - текст, 0 0 - позиция, 160 24 - размеры.
    - Измененные (v2.5):
    0B2D: write_samp_memory offset 0x63700 value 0xC390 size 2 // Записывает в память модуля samp.dll значение с нужным количеством байт // Входные данные: 0x63700 - оффсет, 0xC390 - новое значение, 2 - размер (максимум 4, минимум 1)
    0B2E: 4@ = read_samp_memory offset 0x63700 size 2 // Читает участок памяти из модуля samp.dll // Входные данные: 0x63700 - оффсет, 2 - размер (максимум 4, минимум 1). Выходные данные: 4@ - прочитанное значение
    - Новые (v2.6)
    0B5D: samp toggle_cursor true // Переключает состояние курсора // Входные данные: true/(false) - включен/выключен.
    0B88: samp dialog 1@ add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40 // Добавляет на диалог окно ввода текста // Входные данные: 1@ - диалог, 0x14 - ид компонента, "ThisIsEditBox" - текст по умолчанию, 0 48 - координаты, 256 40 - размеры.
    0B89: samp dialog 1@ get_control 0x14 text_to 3@ // Записывает в буфер текст контрола // Входные данные: 1@ - диалог, 0x14 - ид компонента, 3@ - указатель на буфер.
    0B92: samp dialog 1@ checkbox 0x13 is_checked // Проверяет, активирован ли чекбокс // Входные данные: 1@ - диалог, 0x13 - ид компонента.
    0B93: samp dialog 1@ set_background_color 0xFF004422 // Устанавливает цвет фона диалога. // Входные данные: 1@ - диалог, 0xFF004422 - новый цвет.
    0B94: samp dialog 1@ set_control 0x14 text_to "This is SPARTA" // Изменяет текст компонента // Входные данные: 1@ - диалог, 0x14 - ид компонента, "This is SPARTA" - новый текст.
    0B95: samp dialog 1@ control 0x10 is_visible // Проверяет, видим ли компонент // Входные данные: 1@ - диалог, 0x10 - ид компонента.
    0B96: samp dialog 1@ add_slider id 0x15 pos_XY 64 24 size 128 32 max 100 // Создаёт горизонтальный слайдер в окне диалога // Входные данные: 1@ - диалог, 0x15 - ид компонента, 64 24 - позиция, 128 32 - размеры, 100 - максимальное значение.
    0B97: samp dialog 1@ slider 0x15 get_value_to 2@ // Получает позицию бегунка слайдера // Входные данные: 1@ - диалог, 0x15 - ид компонента. Выходные данные: 2@ - значение.

    Установка:
    * Для разработчиков:
    Файл "SAMPFUNCS vx.x.cleo скопировать в папку CLEO, находящуюся в папке с игрой.
    * Для разработчиков:
    Скопировать все файлы из папки "SB data", нахоящейся в архиве, в каталог по пути ".../Sanny Builder 3/data/sa".

    Внимание!
    Если плагин не работает, выдавая ошибку при запуске игры, или просто игра вылетает, попробуйте сделать следующее:
    1. Переустановите CLEO 4.1 http://cleo.sannybuilder.com/cleo4/CLEO4_setup.exe
    2. Замените gta_sa.exe на стандартный gta_sa.exe v1.0 US
    3. Установите SA-MP клиент версии 0.3x R1.
    Для полной загрузки плагина, в папке CLEO должен быть хоть один из скриптов, использующих SAMPFUNCS.
    * SAMPFUNCS конфликтует с плагином scmlog, для корректной работы необходимо удалить scmlog.cleo из папки CLEO

     
  2. ВЕБ

    ВЕБ

    Статус:
    Оффлайн
    Регистрация:
    12.07.13
    Сообщения:
    31
    Репутация:
    0 +/-
    Обновил Sampfuncs