Статус темы:
Закрыта.
  1. Чаки Младший Cержант

    Регистрация:
    5 апр 2014
    Сообщения:
    205
    Симпатии:
    43
    Репутация:
    20
    Пол:
    Мужской

    [cleo plugin] sampfuncs для gta: samp

    Тема в разделе "CLEO скрипты для GTA: SAMP", создана пользователем Чаки, 27 апр 2014.

    [CLEO PLUGIN] SAMPFUNCS для GTA: SAMP

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


    История изменений:
    PHP:
    0.7:

    Первый публичный релиз для SA-MP 0.3d


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


    1.01
    :
    Новые опкоды:
    0B23samp is_player_connected 0@
    0B24samp 1@ = get_remote_player_ptr 0@
    0B2Asamp 1@ = get_player_ping 0@
    0B2Bsamp 1@ = get_player_id_by_actor_handle 0@
    0B2Csamp 1@ = get_vehicle_id_by_car_handle 0@
    0B2Dwrite_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 0to 123@
    0B30samp send_enter_vehicle 0as_passenger false
    0B31
    samp send_exit_vehicle 0@
    Улучшены опкоды:
    0AF6samp spawn_player при спавне на сервер отправляется пакет запроса на спавнпри первом спавне отныне сервер не кикает
    0AFC
    samp send_scm_event добавлена возможность выбора ида машины
    0AF8
    samp add_message_to_chat0AF9samp say_msg0B29samp set_local_name полностью поддерживают форматирование


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


    1.1
    :
    Проект перенесён на новую основупереписана архитектураПлагин больше не зависит от системных библиотек
    Обновлены опкоды:
    0B24samp 1@ = get_player_ptr 0@ (GetPlayerPtr) - можно получить поинтер на локальную структуру
    0B2A
    0B230B300B310AFB улучшена стабильность работы
    0AFE
    samp send_death_by_player 0with_reason 10 теперь можно выбрать ИД игрока и причину смерти
    Добавлены 2 новых опкода:
    0B32samp send_spawn
    0B33
    samp send_damage_vehicle 0panel 123456 doors 654321 lights 255 tires 255


    1.2
    :
    Исправлен опкод 0B2Asamp 1@ = get_player_ping 0@ - в некоторых случаях опкод возвращал неверное значение
    Добавлены опкоды для работы с командами чата:
    0B34samp 0@ = register_client_command "text"
    0B35samp is_command_typed 0params 1@


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


    1.4:
    Добавлены математические опкоды:
    0C00math 1@ = abs 0// (float)
    0C01math 1@ = radian_to_angle 0// (float)
    0C02math 1@ = angle_to_radian 0// (float)
    0C03math 1@ = sine 0// (float)
    0C04math 1@ = arcsine 0// (float)
    0C05math 1@ = cosine 0// (float)
    0C06math 1@ = arccosine 0// (float)
    0C07math 1@ = tangent 0// (float)
    0C08math 1@ = arctangent 0// (float)
    0C09math 1@ = power 03.0 // (float)


    1.5:
    Добавлено 5 опкодов:
    0B38samp connect_to_server 0port 1@
    0B39samp get_current_server_address 0port 1@
    0B3Asamp 0@ = get_current_server_name
    0C0A
    math 1@ = ceil 0// (float)
    0C0Bmath 1@ = floor 0// (float)
    Добавлена система проверки обновлений.
    Добавлен файл настроек плагина.


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


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


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


    2.3:
    Адаптирован под SA-MP 0.3x (R1).
    Вшит патч античита.
    Новые опкоды:
    0B43samp cmd_ret0B44samp 0@ = create_3d_text ..., 0B45samp destroy_3d_text 0@, 0B46samp 3d_text 0defined
    Изменена структура опкодов 0B340B35отныне 0B34samp register_client_command "mycommand" to_label @mycommand регистрирует команду на меткуа 0B35samp 0@ = get_last_command_params возвращает параметры последней введённой команды.


    2.4:
    Исправлены все баги предыдущей версии.
    Добавлено 13 опкодов.
    Добавлено 17 опкодов для удобной работы с памятью и строками. (Информацию о них можно найти в интернетеисходя из названий опкодов)
    Опкод 0B27samp set_gamestate теперь использует собственные ИД-ы игрового статуса.
    Возвращена и улучшена проверка обновлений плагина.


    2.5:
    Опкоды 0B2C0B2D теперь могут читать/записывать память только в модуле "samp.dll"
    Исправлена невозможность подключиться к серверу с помощью опкода 0B38
    Добавлено больше патчей античита
    Новые опкоды:
    0B54samp 0@ = listbox_items_count
    0B55
    convert_3D_coords 1024.0 768.0 32.0 to_screen 01@
    0B56set_game_key 1 state 0xFF
    0B57
    samp 1@ = player 0animation_id
    0B58
    samp get_animation_name_to 0file_to 1by_id 2@
    0B59samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED"
    0B5Aget_screen_resolution 01@
    0B5Bsamp get_listbox_item 0 text_to 1@
    Опкоды для создания собственных диалогов и управления ими:
    0B80samp 1@ = create_dialog "Caption"
    0B81samp dialog 1pop_event_to 1control_id_to 2@
    0B82samp dialog 1add_button id 0x12 text "ButtonText" pos_XY 0 0 size 256 24
    0B83
    samp dialog 1add_checkbox id 0x13 text "CheckBoxText" pos_XY 0 24 size 256 24
    0B84
    samp dialog 1set_pos_XY 64 160 size 256 88
    0B85
    samp dialog 1get_position_to 23size_to 45@
    0B86samp dialog 1set_visible true
    0B87
    samp dialog 1is_visible
    0B88
    samp dialog 1add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
    0B90
    samp dialog 1control 0x12 set_visible true
    0B91
    samp dialog 1add_static id 0x01 text "StaticText" pos_XY 0 0 size 160 24
    2.5.1
    :
    Исправлен опкод 0AF9.
    2.6:
    Исправлена проверка обновлений
    Новые опкоды:
    0B5Dsamp toggle_cursor true
    0B88
    samp dialog 1add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40
    0B89
    samp dialog 1get_control 0x14 text_to 3// IF AND SET
    0B92samp dialog 1checkbox 0x13 is_checked // IF AND SET
    0B93samp dialog 1set_background_color 0xFF004422
    0B94
    samp dialog 1set_control 0x14 text_to "This is SPARTA"
    0B95samp dialog 1control 0x10 is_visible
    0B96
    samp dialog 1add_slider id 0x15 pos_XY 64 24 size 128 32 max 100
    0B97
    samp dialog 1slider 0x15 get_value_to 2@
    0B98samp dialog 1slider 0x15 set_value_to 120
    Список всех опкодов ( Опкод // Описание // Параметры ):


    PHP:
    0AF6samp spawn_player // Отправляет игрока на спавн // Параметров не имеет
    0AF7get_samp_base_to 0// IF and SET // Получает базовый адрес "samp.dll", использование этого опкода необходимо в каждом скрипте, использующем плагин. // Выходные данные: 0@ - базовый адрес "samp.dll"
    0AF8samp add_message_to_chat "%d + %d = %d" color 0xFF61BB 4 6 10 // Добавляет сообщение с текстом "Text" и цветом 0xFF61BB в SAMP-чат (опкод поддерживает форматирование) // Входные данные: "Text" - текст сообщения, 0xFF61BB - цвет сообщения, параметры для форматирования
    0AF9samp say_msg "I AM NOOB! LOL" // Отправляет сообщение с текстом "I AM NOOB! LOL" на сервер (опкод поддерживает форматирование) // Входные данные: "I AM NOOB! LOL" - текст сообщения, параметры для форматирования
    0AFAis_samp_structures_available // Данный опкод используется для проверки полной загруженности SAMP, его использование необходимо в каждом скрипте, использующем плагин. // Параметров не имеет
    0AFBsamp request_class_id 1// Изменяет класс игрока на выбранный, для полной смены нужно заспавниться. // Входные данные: 1@ - новый класс
    0AFCsamp send_scm_event 0event_id 3 params 126 126 // Отправляет на сервер пакет о смене параметров транспорта (цвет, апгрейды, покрасочные работы) // Входные данные: 0@ - SAMP-Ид транспортного средства, 3 - тип (1 - покрасочная работа, 2 - компонент, 3 - цвет), 126 126 - параметры
    0AFDsamp set_special_action 5 // Устанавливает игроку специальное действие (курить, пить, ссать и т.п.) // Входные данные: 5 - ид специального действия
    0AFEsamp send_death_by_player 0with_reason 10 // Отправляет на сервер пакет о смерти от определённого игрока и с заданной причиной // Входные данные: 0@ - ид игрока, 10 - причина смерти
    0AFFsamp 3@ = car_handle_from_samp_carid 87 // Получает хендл машины по её SAMP-Иду // Входные данные: 87 - SAMP-ID машины. Выходные данные: 3@ - хендл машины
    0B20samp 4@ = actor_handle_from_samp_playerid 5 // Получает хендл актёра по SAMP-Иду игрока // Входные данные: 5 - SAMP-ID игрока. Выходные данные: 3@ - хендл актёра
    0B21samp is_chat_opened // Проверяет статус открытости чата, используется только в качестве проверки. // Параметров не имеет
    0B22samp set_sendrate 2 to 0 // Устанавливает задержку отправки клиентом, выбранного типа, пакетов // Входные данные: 2 - тип (пешком = 1, в машине = 2, камера = 3), 0 - задержка в мс
    0B27samp set_gamestate 26 // Устанавливает статус подключения к серверу // Входные данные: 26 - статус (GAMESTATE_AWAIT_JOIN = 30, GAMESTATE_RESTARTING = 33, GAMESTATE_WAIT_CONNECT = 26, GAMESTATE_CONNECTING = 28, GAMESTATE_CONNECTED = 29)
    0B28samp disconnect_with_reason 0 // Отключает от сервера с заданной причиной // 0 - обычное отключение, 1 - таймаут
    0B29samp set_local_name "ec_clan.ru" // Устанавливает ник игроку на "ec_clan.ru" (опкод поддерживает форматирование) // Входные данные: "ec_clan.ru" - новый ник
    Новые (v1.01)
    0B23samp is_player_connected 0// Проверяет, подключен ли игрок с идом 0@ к серверу, используется только в качестве проверки // Входные данные: 0@ - ид игрока
    0B24samp 1@ = get_remote_player_ptr 0// Получает адрес на структуру игрока, в ней SAMP хранит все локальные данные о игроке // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - указатель на структуру игрока
    0B2Asamp 1@ = get_player_ping 0// Возвращает пинг игрока // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - пинг игрока
    0B2Bsamp 1@ = get_player_id_by_actor_handle 0// Возвращает SAMP-ид игрока по хендлу актёра // Входные данные: 0@ - хендл актёра. Выходные данные: 1@ - ид игрока
    0B2Csamp 1@ = get_vehicle_id_by_car_handle 0// Возвращает SAMP-ид машины по её хендлу // Входные данные: 0@ - хендл машины. Выходные данные: 1@ - ид машины
    0B2Dwrite_module_memory "samp.dll" offset 0x63700 value 0xC390 size 2 // Записывает в память указанного модуля заданное значение с нужным количеством байт // Входные данные: "samp.dll" - имя модуля, 0x63700 - оффсет, 0xC390 - новое значение, 2 - размер (максимум 4, минимум 1)
    0B2E4@ = read_module_memory "samp.dll" offset 0x63700 size 2 // Читает участок памяти из указанного модуля // Входные данные: "samp.dll" - имя модуля, 0x63700 - оффсет, 2 - размер (максимум 4, минимум 1). Выходные данные: 4@ - прочитанное значение
    0B2Fsamp get_streamed_out_player_pos 0to 123// Получает позицию удалённого игрока // Входные данные: 0@ - ид игрока. Выходные данные: 1@ 2@ 3@ - позиция
    0B30samp send_enter_vehicle 0as_passenger false // Отправляет пакет о посадке в машину, этот опкод не синхронизирует машину, но может быть полезен при написании обходов античита на всякие "КарХако-подобные" вещи // Входные данные: 0@ - SAMP-ид машины, false - тип посадки (false - водительское место, true - пассажирское)
    0B31samp send_exit_vehicle 0// Отправляет пакет о выходе из машины // Входные данные: 0@ - SAMP-ид машины
    Новые (v1.1)
    0B32samp send_spawn // Отправляет пакет о спавне // Параметров не имеет
    0B33samp send_damage_vehicle 0panel 123456 doors 654321 lights 255 tires 0 // Отправляет пакет о повреждении компонентов ТС // Входные данные: 0@ - SAMP-ID машины, 123456 - статус повреждения передней и задней части, 654321 - статус повреждения дверей, 255 - огней, 0 - покрышек
    Новые (v1.2)
    0B34samp 0@ = register_client_command "text" // Регистрирует команду "text", возвращая её уникальный идентификатор // Входные данные: "text" - команда. Выходные данные 0@ - ИД команды, должен быть сохранён (используется в проверке 0B35: samp is_command_typed ...)
    0B35samp is_command_typed 0params 1// Проверяет введённость команды, используется только в качестве проверки. Возвращает указатель на строку параметров. // Входные данные: 0@ - уникальный ИД команды. Выходные данные 1@ - указатель на строку параметров, (то, что было введено после команды, пример: "/command 10" - "10" - это параметры команды). Могут быть отфильтрованы опкодом 0AD4:
    Новые (v1.3)
    0B36samp 1@ = get_player_nickname 0// Возвращает указатель на ник игрока с ИД 0@ // Входные данные: 0@ - ИД игрока. Выходные данные: 1@ - указатель на строку, содержащую ник игрока.
    0B37samp 1@ = get_player_color 0// Возвращает цвет ника игрока с ИД 0@ // Входные данные: 0@ - ИД игрока. Выходные данные: 1@ - цвет ника игрока.
    Новые (v1.5)
    0B38samp connect_to_server 0port 1// Устанавливает соединение с заданным SA:MP-сервером // Входные данные: 0@ - IP сервера (строка/указатель на строку), 1@ - порт сервера.
    0B39samp get_current_server_address 0port 1// Получает адрес текущего сервера // Выходные данные: 0@ - IP сервера, 1@ - порт сервера.
    0B3Asamp 0@ = get_current_server_name // Возвращает название текущего сервера // Выходные данные: 0@ - название сервера
    Новые (v2.0)
    0B3Bsamp 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 - стиль диалога
    0B3Csamp dialog_respond 5 button 0list_item 1input_text 2// Проверяет, был ли закрыт диалог и возвращает все входные параметры // Выходные данные: 0@ - ид нажатой кнопки (1 - левая, 2 - правая), 1@ - выбранный элемент из списка (вернёт -1, если диалог не имеет элементов), 2@ - текст, который был введён в окно ввода.
    0B3Draknet 0@ = new_bit_stream // Выделяет память под новую переменную BitStream, это необходимо для отправки пакетов серверу // Выходные данные: 0@ - указатель на созданный объект BitStream.
    0B3Eraknet delete_bit_stream 0// Освобождает выделенную память под BitStream, необходимо делать каждый раз, когда BitStream перестаёт быть нужным, во избежание утечек памяти // Входные данные: 0@ - указатель на объект BitStream.
    0B3Fraknet reset_bit_stream 0// Сбрасывает все данные уже созданного объекта BitStream, оставляя возможность использовать его снова // Входные данные: 0@ - указатель на объект BitStream.
    0B40raknet bit_stream 0write 1type BS_TYPE_INT size 4 // Пишет данные в существующий объект BitStream // Входные данные: 0@ - указатель на объект BitStream, 1@ - значение, BS_TYPE_INT - тип, 4 - размер (можно указать любой, если тип не является строкой или массивом).
    0B41raknet send_rpc RPC_DEATH bit_stream 1priority PRIORITY_MEDIUM reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false // Отправляет RPC на сервер // Входные данные: RPC_DEATH - ид RPC, 1@ - указатель на объект BitStream, PRIORITY_MEDIUM - приоритет пакета, RELIABLE_SEQUENCED - надёжность пакета, 0, false - точного назначения этих двух параметров не знаю, не вдавался в подробности, потому-что они нам не нужны.
    0B42raknet send bit_stream 0priority PRIORITY_MEDIUM reliability RELIABLE_SEQUENCED ordering_channel 0 // Отправляет пакет на сервер // Входные данные: 0@ - указатель на объект BitStream, PRIORITY_MEDIUM - приоритет пакета, RELIABLE_SEQUENCED - надёжность пакета.
    Измененные (v2.3)
    0B34samp register_client_command "mycommand" to_label @MyCommand // Регистрирует команду "mycommand" на метку @MyCommand (при вводе этой команды выполнится код по метке @MyCommand, выход из тела кода осуществляется опкодом 0B43) // Входные данные: "mycommand" - команда, @MyCommand - метка, на которую будет зарегистрирована команда.
    0B35samp 0@ = get_last_command_params // Возвращает указатель на строку параметров. // Выходные данные 1@ - указатель на строку параметров, (то, что было введено после команды, пример: "/command 10" - "10" - это параметры команды). Параметры могут быть отфильтрованы опкодом 0AD4
    Новые (v2.3)
    0B43samp cmd_ret // Указывает на конец кода команды, возвращает из тела команды обратно в код скрипта. // Параметров не имеет
    0B44samp 0@ = create_3d_text "dafuq" color 0xFFFF00FF position 123view_distance 50.0 show_behind_walls true attached_to_player -1 attached_to_vehicle -// Создаёт 3D-текст SA:MP'a со всеми возможными свойствами. Может быть присоединен к игроку или транспорту. // Входные данные: "dafuq" - текст, 0xFFFF00FF - цвет, 1@ 2@ 3@ - позиция (если текст не присоединен к объекту, или смещение относительно центра, если присоединен), 50.0 - дистанция, на которой 3D-текст будет виден, true - будет ли 3D-текст виден через стены, -1 - ид игрока/транспорта, к которому будет прикреплён 3D-текст. Выходные данные: 0@ - хендл(ид) 3D-текста.
    0B45samp destroy_3d_text 0// Уничтожает 3D-текст. // Входные данные: 0@ - хендл(ид) 3D-текста.
    0B46samp 3d_text 0defined // Проверяет, существует ли 3D-текст. // Входные данные: 0@ - хендл(ид) 3D-текста.
    Новые (v2.4)
    0B47samp close_current_dialog_with_button 1 // Закрывает текущий диалог с возможностью выбора кнопки, которой он был закрыт. Информация о закрытии отправляется на сервер, если диалог был создан сервером. // Входные данные: 1 - ИД кнопки (1 - левая, 0 - правая).
    0B48samp 0@ = get_current_dialog_list_item // Возвращает ИД выбранного пункта в диалоге-списке. // Выходные данные: 0@ - ИД выбранного пункта.
    0B49samp set_current_dialog_list_item 0// Устанавливает текущий пункт в диалоге-списке. // Входные данные: 0@ - ИД выбираемого пункта.
    0B4Asamp 0@ = get_current_dialog_editbox_text // Копирует в буффер содержимое окна ввода текста диалога. // Входные данные: 0@ - указатель на выделенный участок памяти.
    0B4Bsamp set_current_dialog_editbox_text "Text" // Устанавливает текст для окна ввода диалога. // Входные данные: "Text" - новый текст.
    0B4Csamp is_dialog_active 0// Проверяет, является ли открытым диалог с ИД'ом 0@, если в качестве ИД'а передать параметр -1, то опкод вернёт истинное значение проверки для любого открытого диалога. // Входные данные: 0@ - ИД диалога.
    0B4Dsamp 0@ = get_current_dialog_type // Возвращает тип текущего диалога // Выходные данные: 0@ - ИД типа диалога.
    0B4Esamp 0@ = get_current_dialog_id // Возвращает ИД текущего диалога // Выходные данные: 0@ - ИД диалога.
    0B4Fsamp 0@ = get_gamestate // Возвращает статус присоединения к серверу // Выходные данные: 0@ - ИД статуса.
    0B50samp 1@ = object_handle_by_id 0// Получает хендл объекта по его SAMP-ИД'у. // Входные данные: 0@ - SAMP-ID объекта. Выходные данные: 1@ - хендл объекта.
    0B51samp 1@ = pickup_handle_by_id 0// Получает хендл пикапа по его SAMP-ИД'у. // Входные данные: 0@ - SAMP-ID пикапа. Выходные данные: 1@ - хендл пикапа.
    0B52samp 1@ = object_id_by_handle 0// Получает SAMP-ИД объекта по его хендлу. // Входные данные: 0@ - хендл объекта. Выходные данные: 1@ - SAMP-ID объекта.
    0B53samp 1@ = pickup_id_by_handle 0// Получает SAMP-ИД пикапа по его хендлу. // Входные данные: 0@ - хендл пикапа. Выходные данные: 1@ - SAMP-ID пикапа.
    0C0C0@ = struct 1offset 0x10 size 4 // Читает значение элемента структуры, размером 4 байта и смещением на 0x10 байт, по адресу 1@. // Входные данные: 1@ - адрес начала структуры, 0x10 - смещение в байтах, 4 - размер в байтах (от 1 до 4). Выходные данные: 0@ - значение элемента.
    0C0Dstruct 1offset 0x10 size 4 0// Записывает значение элемента структуры, размером 4 байта и смещением на 0x10 байт, по адресу 1@. // Входные данные: 1@ - адрес начала структуры, 0x10 - смещение в байтах, 4 - размер в байтах (от 1 до 4), 0@ - записываемое значение.
    0C0E0@ = array 1element 2// Читает элемент массива под номером 2@ по адресу 1@, учитывая что каждый элемент в массиве равен четырём байтам. // Входные данные: 1@ - адрес начала массива, 2@ - номер элемента массива. Выходные данные: 0@ - значение элемента массива.
    0C0F: array 1element 2@ = 0// Записывает значение в элемент массива под номером 2@ по адресу 1@, учитывая что каждый элемент в массиве равен четырём байтам. // Входные данные: 1@ - адрес начала массива, 2@ - номер элемента массива, 0@ - записываемое значение элемента массива.
    Новые (v2.5)
    0B54samp 0@ = listbox_items_count // Возвращает количество пунктов диалога со списком. // Выходные данные: 0@ - количество пунктов.
    0B55convert_3D_coords 1024.0 768.0 32.0 to_screen 01// Конвертирует мировые 3D-координаты в экранные координаты. // Входные данные: 1024.0 768.0 32.0 - 3D координаты мира. Выходные данные: 0@ 1@ - экранные координаты.
    0B56set_game_key 1 state 0xFF // Устанавливает игровой клавише заданный статус. // Входные данные: 1 - ид клавиши, 0xFF - статус (0 - отжата, 0xFF - нажата).
    0B57samp 1@ = player 0animation_id // Возвращает ид анимации игрока по его иду. // Входные данные: 0@ - ид игрока. Выходные данные: 1@ - ид анимации игрока.
    0B58samp get_animation_name_to 0file_to 1by_id 2// Записывает в буфер имя анимации и её файл по иду. // Входные данные: 0@ - указатель на выделенный участок памяти под название, 1@ - указатель на буфер для названия файла, 2@ - ид анимации.
    0B59samp 0@ = animation_id_by_name "IDLE_STANCE" file "PED" // Возвращает ид анимации её по имени. // Входные данные: "IDLE_STANCE" "PED" - имя и файл анимации. Выходные данные: 0@ - ид анимации.
    0B5Aget_screen_resolution 01// Возвращает размеры окна игры. // Выходные данные: 0@, 1@ - размеры окна.
    0B5Bsamp get_listbox_item 0 text_to 1// Записывает в буфер по указателю 1@ текст пункта листбокса. // Входные данные: 0 - ид элемента, 1@ - указатель на буфер.
    0B80samp 1@ = create_dialog "Caption" // Создаёт диалог с названием "Caption" и возвращает указатель на его объект. //
    0B81samp dialog 1pop_event_to 1control_id_to 2// Записывает последнее событие диалога 1@ в переменную 2@ и ид участника в переменную 3@, возвращает FALSE, если события нет. // Входные данные: 1@ - указатель на объект диалога. Выходные данные: 2@ - ид события, 2@ - ид компонента.
    0B82samp dialog 1add_button id 0x12 text "ButtonText" pos_XY 0 0 size 256 24 // Создаёт кнопку с текстом "ButtonText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x12 - ид компонента, "ButtonText" - текст компонента, 0 0 - позиция, 256 24 - размеры.
    0B83samp dialog 1add_checkbox id 0x13 text "CheckBoxText" pos_XY 0 24 size 256 24 // Создаёт чекбокс с текстом "ButtonText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x13 - ид компонента, "CheckBoxText" - текст компонента, 0 24 - позиция, 256 24 - размеры.
    0B84samp dialog 1set_pos_XY 64 160 size 256 88 // Устанавливает позицию и размеры диалога. // Входные данные: 1@ - диалог, 64 160 - новая позиция, 256 88 - новый размер.
    0B85samp dialog 1get_position_to 23size_to 45// Получает позицию и размер диалога. // Входные данные: 1@ - диалог. Выходные данные: 2@ 3@ - позиция, 4@ 5@ - размер.
    0B86samp dialog 1set_visible true // Устанавливает видимость диалога. // Входные данные: 1@ - диалог, true - логическое да/нет (видим/не видим).
    0B87samp dialog 1is_visible // Проверяет, видим ли диалог. // Входные данные: 1@ - диалог.
    0B90samp dialog 1control 0x12 set_visible true // Устанавливает видимость компонента диалога. // Входные данные: 1@ - диалог, 0x12 - ид компонента, true - логическое да/нет (видим/не видим).
    0B91samp dialog 1add_static id 0x01 text "StaticText" pos_XY 0 0 size 160 24 // Создаёт статичный текст "StaticText" на диалоге с указанными размерами и позицией. // Входные данные: 1@ - диалог, 0x01 - ид компонента, "StaticText" - текст, 0 0 - позиция, 160 24 - размеры.
    Измененные (v2.5):
    0B2Dwrite_samp_memory offset 0x63700 value 0xC390 size 2 // Записывает в память модуля samp.dll значение с нужным количеством байт // Входные данные: 0x63700 - оффсет, 0xC390 - новое значение, 2 - размер (максимум 4, минимум 1)
    0B2E4@ = read_samp_memory offset 0x63700 size 2 // Читает участок памяти из модуля samp.dll // Входные данные: 0x63700 - оффсет, 2 - размер (максимум 4, минимум 1). Выходные данные: 4@ - прочитанное значение
    Новые (v2.6)
    0B5Dsamp toggle_cursor true // Переключает состояние курсора // Входные данные: true/(false) - включен/выключен.
    0B88samp dialog 1add_editbox id 0x14 text "ThisIsEditBox" pos_XY 0 48 size 256 40 // Добавляет на диалог окно ввода текста // Входные данные: 1@ - диалог, 0x14 - ид компонента, "ThisIsEditBox" - текст по умолчанию, 0 48 - координаты, 256 40 - размеры.
    0B89samp dialog 1get_control 0x14 text_to 3// Записывает в буфер текст контрола // Входные данные: 1@ - диалог, 0x14 - ид компонента, 3@ - указатель на буфер.
    0B92samp dialog 1checkbox 0x13 is_checked // Проверяет, активирован ли чекбокс // Входные данные: 1@ - диалог, 0x13 - ид компонента.
    0B93samp dialog 1set_background_color 0xFF004422 // Устанавливает цвет фона диалога. // Входные данные: 1@ - диалог, 0xFF004422 - новый цвет.
    0B94samp dialog 1set_control 0x14 text_to "This is SPARTA" // Изменяет текст компонента // Входные данные: 1@ - диалог, 0x14 - ид компонента, "This is SPARTA" - новый текст.
    0B95samp dialog 1control 0x10 is_visible // Проверяет, видим ли компонент // Входные данные: 1@ - диалог, 0x10 - ид компонента.
    0B96samp dialog 1add_slider id 0x15 pos_XY 64 24 size 128 32 max 100 // Создаёт горизонтальный слайдер в окне диалога // Входные данные: 1@ - диалог, 0x15 - ид компонента, 64 24 - позиция, 128 32 - размеры, 100 - максимальное значение.
    0B97samp dialog 1slider 0x15 get_value_to 2// Получает позицию бегунка слайдера // Входные данные: 1@ - диалог, 0x15 - ид компонента. Выходные данные: 2@ - значение.
    0B98samp dialog 1slider 0x15 set_value_to 120 // Устанавливает позицию бегунка слайдера // Входные данные: 1@ - диалог, 0x15 - ид компонента, 120 - новая позиция.


    Установка:

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

    Внимание!

    Если плагин не работает, выдавая ошибку при запуске игры, или просто игра вылетает, попробуйте сделать следующее:
    1. Установите MS VC++
    Для x86:

    Ссылки могут видеть только зарегистрированные
    пользователи
    . Для того что-бы скачать читы

      Зарегистрируйтесь
    или Авторизуйтесь на форуме


    Для x64:

    Ссылки могут видеть только зарегистрированные
    пользователи
    . Для того что-бы скачать читы

      Зарегистрируйтесь
    или Авторизуйтесь на форуме


    2. Переустановите CLEO 4.1

    Ссылки могут видеть только зарегистрированные
    пользователи
    . Для того что-бы скачать читы

      Зарегистрируйтесь
    или Авторизуйтесь на форуме


    3. Замените gta_sa.exe на стандартный gta_sa.exe v1.0 US
    Для полной загрузки плагина, в папке CLEO должен быть хоть один из скриптов, использующих SAMPFUNCS.
    * SAMPFUNCS конфликтует с плагином scmlog, для корректной работы необходимо удалить scmlog.cleo из папки CLEO

    Ссылки могут видеть только зарегистрированные
    пользователи
    . Для того что-бы скачать читы

      Зарегистрируйтесь
    или Авторизуйтесь на форуме

Статус темы:
Закрыта.