| LOPATA13 |
Дата: Пятница, 03.01.2014, 19:38 | Сообщение # 1
|
Новичок
Сообщений: 27
Статус: Offline
|
Описание: получает Ping игрока по ID. Использование: 0AB1: call @get_player_ping 1 id 0@ to 1@
Код :get_player_ping { Params: In: 0@ - playerID Out: 1@ - ping } 0B24: samp 1@ = get_remote_player_ptr 0@ 1@ += 40 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 1 0AB2: ret 1 1@
Автор неизвестно Взято:google
Описание: получает Score игрока по ID. Использование: 0AB1: call @get_player_scores 1 id 0@ to 1@
Код :get_player_scores { Params: In: 0@ - playerID Out: 1@ - scores } 0B24: samp 1@ = get_remote_player_ptr 0@ 1@ += 32 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 1 0AB2: ret 1 1@ Описание: Переводит трехмерные координаты пространства в двумерные координаты экрана. Использование: 0AB1: call_scm_func @getScreenXYFrom3DCoords 3 3D_coords_X 0@ Y 1@ Z 2@ store_screen_X_to 3@ Y_to 4@
Код :getScreenXYFrom3DCoords 0AA7: call_function 0x70CE30 num_params 6 pop 6 clipNear 1 clipFar 1 yMult 7@s xMult 6@s outVector 2@s inVector 0@s result 29@ 0073: 2@ /= 6@ 0073: 2@ /= 4@ 0073: 3@ /= 7@ 0073: 3@ /= 4@ 2@ *= 640.0 3@ *= 448.0 0AB2: ret 2 2@ 3@
Пример отправки ложной позиции на ногах: Вызов функции: 0AB1: call_scm_func @SendOnfootFakePosition 3 Pos_x 1@ Pos_y 2@ Pos_z 3@
Код :SendOnfootFakePosition 3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) // Получаем ид нашего игрока 3@ = SAMP.GetPlayerStruct(3@) // Получаем указатель на локальную структуру 3@ += 109 // Прибавляем смещение на структуру, в которой храниться текущая onfoot data. 0AC8: 4@ = allocate_memory_size 68 // Выделяем память, равную размеру пакета. 0C10: memcpy destination 4@ source 3@ size 68 // Копируем информацию onfoot, чтобы потом изменить только позиции. 0C0D: struct 4@ offset 6 size 4 = 0@ // Изменяем позиции игрока по оси X. Размер 4, так как тип float имеет 4 байта. 0C0D: struct 4@ offset 10 size 4 = 1@ // Offset будет 10, так как 6 + 4 = 10 0C0D: struct 4@ offset 14 size 4 = 2@ // 10 + 4 = 14 0B3D: raknet 5@ = new_bit_stream // Создаем битстрим. 0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1 // Вписываем в битстрим название пакета. 0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68 // Вписываем туда переменную, в которой onfoot data, с измененными позициями. 0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 // Отправляем битстрим в котором содержится пакет. 0B3E: raknet delete_bit_stream 5@ // Удаляем битстрим. 0AC9: free_allocated_memory 4@ // Освобождаем память. 0ab2: 0 // Заканчиваем Call функцию.
Пример отправки ложной скорости на ногах: Вызов функции: 0AB1: call @SendOnfootFakeSpeed 3 xyz 10@ 11@ 12@
Код :SendOnfootFakeSpeed 3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 3@ = SAMP.GetPlayerStruct(3@) 3@ += 109 0AC8: 4@ = allocate_memory_size 68 0C10: memcpy destination 4@ source 3@ size 68 0C0D: struct 4@ offset 38 size 4 = 0@ 0C0D: struct 4@ offset 42 size 4 = 1@ 0C0D: struct 4@ offset 46 size 4 = 2@ 0B3D: raknet 5@ = new_bit_stream 0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1 0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68 0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 0B3E: raknet delete_bit_stream 5@ 0AC9: free_allocated_memory 4@ 0AB2: ret 0
Пример отправки ложной позиции в машине: Вызов функции: 0AB1: call_scm_func @SendInCarFakePosition 3 Pos_x 1@ Pos_y 2@ Pos_z 3@ carid 4@
Код :SendInCarFakePosition 3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 3@ = SAMP.GetPlayerStruct(3@) 3@ += 177 0AC8: 4@ = allocate_memory_size 63 0C10: memcpy destination 4@ source 3@ size 63 0C0D: struct 4@ offset 24 size 4 = 0@ 0C0D: struct 4@ offset 28 size 4 = 1@ 0C0D: struct 4@ offset 32 size 4 = 2@ 0B3D: raknet 5@ = new_bit_stream 0B40: raknet bit_stream 5@ write PACKET_VEHICLE_SYNC type BS_TYPE_BYTE size 1 0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 63 0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 0B3E: raknet delete_bit_stream 5@ 0AC9: free_allocated_memory 4@ 0AB2: ret 0
Код Пример отправки ложной скорости в машине: Вызов функции: 0AB1: call @SendIncarFakeSpeed 4 xyz 10@ 11@ 12@ vehicleid 13@ Функция: :SendIncarFakeSpeed 4@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 4@ = SAMP.GetPlayerStruct(5@) 4@ += 177 // local inCarData 0AC8: 5@ = allocate_memory_size 63 0C10: memcpy destination 5@ source 4@ size 63 0C0D: struct 5@ offset 0 size 2 = 3@ 0C0D: struct 5@ offset 36 size 4 = 0@ 0C0D: struct 5@ offset 40 size 4 = 1@ 0C0D: struct 5@ offset 44 size 4 = 2@ 0B3D: raknet 6@ = new_bit_stream 0B40: raknet bit_stream 6@ write PACKET_VEHICLE_SYNC type BS_TYPE_BYTE size 1 0B40: raknet bit_stream 6@ write 5@ type BS_TYPE_ARRAY size 63 0B42: raknet send bit_stream 6@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 0B3E: raknet delete_bit_stream 6@ 0AC9: free_allocated_memory 5@ 0AB2: ret 0
Получаем bytePlayerState игрока по иду. Код :getplayerstate 0B24: samp 1@ = get_player_ptr 0@ 1@ += 44 //REMOTE 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 2@ += 350 // 0A8D: 17@ = read_memory 2@ size 1 virtual_protect 0 0AB2: ret 1 17@
RPC_SPAWN = 11 // Отправляется, когда игрок спавнится. RPC_DEATH = 12 // Отправляется, когда игрок умерает. RPC_MENUSELECT = 0x19 // Отправляется, для навигации в стандартном диалоговом меню gta. RPC_ENTERVEHICLE = 25 //Отправляется, когда игрок садиться в автомобиль. RPC_SERVERJOIN = 152 // Отправляется, когда игрок заходит на сервер. RPC_SERVERQUIT = 153 //Отправляется, когда игрок выходит с сервера. RPC_INITGAME = 154 // Отправляется, когда игрок подключается к серверу. RPC_CLIENTJOIN = 24 // Отправляется, когда клиент подключается к серверу. RPC_NPCJOIN = 155 // Отправляется, в случае, если игрок бот. RPC_REQUESTCLASS = 138 //Отправляется, когда игрок нажимает кнопки при выборе класса f4. RPC_REQUESTSPAWN = 139 //Отправляется, когда игрок нажимает на кнопку spawn в f4. RPC_SETINTERIORID = 117 // Отправляется, когда игрок заходит в интерьер. RPC_CHAT = 102 //Отправляется, когда игрок пишет в чат. RPC_EXITVEHICLE = 26 // Отправляется, когда игрок выходит из автомобиля. RPC_DAMAGEVEHICLE = 39 // Отправляется, когда машине игрока наносится урон. RPC_MENUQUIT = 155 //Отправляется, когда игрок выходит из меню. RPC_SCMEVENT = 144 //Отправляется, когда игрок делает upgrade машине. RPC_UPDATESCORESPINGSIPS = 27 // Отправляется, когда игрок нажимает TAB. RPC_CONNECTIONREJECTED = 13 // Отправляется, когда игрок имеет валидный ник. RPC_WORLDTIME = 106 // Отправляется, когда игрок изменяет время. RPC_WEATHER = 19 // Отправляется, когда игрок изменяет погоду. RPC_SERVERCOMMAND = 116 // Отправляется, когда игрок пишет в чат, начиная с "/" RPC_PICKEDUPPICKUP = 146 // Отправляется, когда игрок подбирает пикап. RPC_VEHICLEDESTROYED = 151 // Отправляется, когда игрок видит сломанную машину. RPC_DIALOGRESPONSE = 21 //Отправляется, когда игрок нажимает куда-либо в диалоговом окне. RPC_PLAYAUDIOSTREAM = 45 // Отправляется, если игроку проигрывается музыка. RPC_CLICKPLAYER = 22 // Отправляется, когда игрок нажимает на ник игрока в ТАВ. RPC_CLICKTEXTDRAW = 82 // Отправляется, когда игрок нажимает на тексдрав. RPC_MAPMARKER = 118 // Отправляется, когда игрок ставит маркер на карте. RPC_PLAYERGIVETAKEDAMAGE = 84 // Отправляется, когда игрок или игроку наноситься урон. RPC_ENTEREDITOBJECT = 87 // Отправляется, когда игрок нажимает мышкой на предмет. RPC_EDITOBJECT = 86 // Отправляется, когда игрок изменяет параметры объекты в визуальном едиторе.
RPC_PICKEDUPPICKUP Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_PICKEDUPPICKUP bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_VEHICLEDESTROYED Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_VEHICLEDESTROYED bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_SPAWN Код 0B3D: raknet 1@ = new_bit_stream 0B41: raknet send_rpc RPC_REQUESTSPAWN bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@ 0B3D: raknet 1@ = new_bit_stream 0B41: raknet send_rpc RPC_SPAWN bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_DEATH Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 29 type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_DEATH bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_PLAYERGIVETAKEDAMAGE Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 1 type BS_TYPE_BOOL size 1 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 7@ type BS_TYPE_FLOAT size 4 0B40: raknet bit_stream 1@ write 0 type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_PLAYERGIVETAKEDAMAGE bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_SCMEVENT Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 7@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 8@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 9@ type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_SCMEVENT bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_ENTERVEHICLE 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B40: raknet bit_stream 1@ write 7@ type BS_TYPE_BOOL size 2 0B41: raknet send_rpc RPC_ENTERVEHICLE bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
RPC_EXITVEHICLE Код 0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 6@ type BS_TYPE_INT size 4 0B41: raknet send_rpc RPC_EXITVEHICLE bit_stream 1@ priority PRIORITY_HIGH reliability RELIABLE_SEQUENCED ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 1@
Активно буду добавлять, Активно добавляйте примеры которых нету
:1 Actor.StorePos($PLAYER_ACTOR, 1@ 2@ 3@) - Записываем свои координаты в переменные Actor.Actor.Putat($PLAYER_ACTOR, 1@ 2@ 3@ ) - Телепортирует на ранее записанные координаты
тоесть Actor.StorePos - Записывает координаты Actor.Putat - Телепортирует на координаты X,Y,Z ( Чтобы узнать XYZ, на указанном месте пропишите /save и в моих документах найдёте файлик с координатами ) Actor.LockInCurrentPosition($PLAYER_ACTOR, True) // freeze - замораживает игрока Actor.LockInCurrentPosition($PLAYER_ACTOR, False) // unfreeze - размораживает игрока (использовать при кордмастере)
До сегодняшнего дня, я сам не знал про существование такого опкода в SF. Спасибо legend2360 и alfazlo. 0C18: 2@ = strstr string1 0@ string2 1@ 0@ - это текст, в которым мы ищем слово. 1@ - это слово. 2@ - это указатель на начало слова. Например: Допустим у нас есть текст: "Объявление: Набор в Русскую семью[2года,ВЗ][62]. Автор: Nazar_Gonzales, телефон: 864576." Мы ищем слово "Набор". В переменной 2 будет указатель на начало, то есть там будет: "Набор в Русскую семью[2года,ВЗ][62]. Автор: Nazar_Gonzales, телефон: 864576."
Можно использовать как условие. Если слово будет найдено, то опкод вернет true.
Вот нехитрый пример: Код {$CLEO} if not 0@ = SAMP.Base() then 0A93: end_custom_thread end while not SAMP.Available() wait 100 end while true wait 0 0AB1: call @getChatEntryText 1 id 99 to 1@ if 0C18: 2@ = strstr string1 1@ string2 "Привет" then say "Здарова" wait 1000 end end :getChatEntryText 1@ = samp.Base() 1@ += 0x212A24 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 1@ += 0x136 0@ *= 252 005A: 1@ += 0@ 1@ += 28 0AB2: ret 1 1@ Если кто-то напишет "Привет", вы скажете "Здарова"
Код 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@ - значение. 0B98: samp dialog 1@ slider 0x15 set_value_to 120 // Устанавливает позицию бегунка слайдера // Входные данные: 1@ - диалог, 0x15 - ид компонента, 120 - новая позиция.
Сообщение отредактировал LOPATA13 - Пятница, 03.01.2014, 20:35 |
|
|
|
|