Кто может подсказать функция отправки лож. координат на сервер из машины?
:SendFakePosInCar
// Ex.: 0AB1: @SendFakePosInCar 3 0.0 0.0 0.0
// By Даниил
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 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: 0
0AB1: @SendFakePosInCar 3 X 55.0 Y 55.0 Z 20.0
Код::SendFakePosInCar // Ex.: 0AB1: @SendFakePosInCar 3 0.0 0.0 0.0 // By Даниил 0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR 0B24: samp 3@ = get_player_ptr 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: 0
Пример:
Код:0AB1: @SendFakePosInCar 3 X 55.0 Y 55.0 Z 20.0
Всё ещё не понимаю... почему плюсуем, к структуре игрока, 177...
Извини, либо ты косорукий, либо не знаешь, как она работает.не работает твоя функция
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
{$include /includes/RakNetDefines.txt}
//-------------MAIN---------------
0000: NOP
if
0@ = SAMP.Base()
jf @Noname_46
:Noname_18
not SAMP.Available
jf @Noname_39
wait 500
jump @Noname_18
:Noname_39
jump @Noname_48
:Noname_46
end_thread
:Noname_48
0@ = 0
:Noname_55
wait 0
if
0@ == 0
jf @Noname_158
wait 0
if
0AB0: key_pressed 110
wait 0
jf @Noname_104
:Noname_104
jf @Noname_151
0@ = 1
0ACD: show_text_highpriority "~g~Activated" time 1500
:Noname_151
jump @Noname_318
:Noname_158
wait 0
0AB1: call_scm_func @SendFakePosInCar 3 414.1 5151. 151.1
wait 500
if or
not Actor.Driving($PLAYER_ACTOR)
0AB0: key_pressed 50
jf @Noname_158
0ACD: show_text_highpriority " ~r~Deactivated" time 1500
0@ = 0
:Noname_318
jump @Noname_55
:SendFakePosInCar
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 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: 0
Ну не знаю.В чем тут ошибка тогда?
0AB1: call_scm_func @SendFakePosInCar 3 414.1 5151. 151.1
Ну не знаю.
Я лично работаю с этой функцией.
И присмотрись к этому:
Может оно? :DКод:0AB1: call_scm_func @SendFakePosInCar 3 414.1 5151. 151.1
Ну вот скажи, как эта функция должна работать?Если ты говоришь за координаты,то я их от балды написал
В cleo другие стоят
[Структура игрока]+177 = указатель на структуру inCarDataКод:struct stPassengerData passengerData;//+0 [23]+0 struct stAimData aimData;//+23 [32]+23 struct stTrailerData trailerData;//+55 (54)+55 struct stOnFootData onFootData;//+109 (68)+109 struct stInCarData inCarData;//+177
В samp.h находятся все структуры.
Я делаю фейк текста, у меня скрипт активируется по нажатию определенной клавиши, но мне надо чтобы он активировался по команде в чат. (/test например)
Как это реализовать?
{$CLEO}
0000:
if
8AF7: get_samp_base_to 33@
then
0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available // Sampfuncs
wait 0
0B34: samp register_client_command "aga" to_label @command_aga // Регистрируем команду
while true // Это
wait 0 // Если нужна
end // Только одна команда, т.е. без меток. В скрипте будет/будут только зарегистрированы команды.(думаю понятно объяснил :D)
:command_aga // Метка, которая будет "вызываться" если была введена команда
wait 0 // необходимо, если нет цикла while true wait 0 end (по идее, здесь не нужно, но я напишу :) )
0B35: samp 0@ = get_last_command_params // Получаем параметры команды(т.е., /aga 5 или /aga ага
if
0AD4: 0@ = scan_string 0@ format "%d" 1@ // Форматируем(если нужно). Обычно 0B35: samp 0@ = get_last_command_params возвращает текст.
// Если нужен текст, то форматирование не нужно.
then
// и тут уже Ваш код
end
0B43: samp cmd_ret //
Код:{$CLEO} 0000: if 8AF7: get_samp_base_to 33@ then 0A93: end_custom_thread end repeat wait 400 until 0AFA: is_samp_structures_available // Sampfuncs wait 0 0B34: samp register_client_command "aga" to_label @command_aga // Регистрируем команду while true // Это wait 0 // Если нужна end // Только одна команда, т.е. без меток. В скрипте будет/будут только зарегистрированы команды.(думаю понятно объяснил :D) :command_aga // Метка, которая будет "вызываться" если была введена команда wait 0 // необходимо, если нет цикла while true wait 0 end (по идее, здесь не нужно, но я напишу :) ) 0B35: samp 0@ = get_last_command_params // Получаем параметры команды(т.е., /aga 5 или /aga ага if 0AD4: 0@ = scan_string 0@ format "%d" 1@ // Форматируем(если нужно). Обычно 0B35: samp 0@ = get_last_command_params возвращает текст. // Если нужен текст, то форматирование не нужно. then // и тут уже Ваш код end 0B43: samp cmd_ret //
Спасибо, а теперь как сделать так чтобы он выводил в чат то число, которое игрок ввел после команды?:D
Ну например:
/aga 555
И в чат пишет:
Вы ввели число 555
{$CLEO}
0000:
if
8AF7: get_samp_base_to 33@
then
0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
wait 0
0B34: samp register_client_command "testnumber" to_label @test_number // Число
0B34: samp register_client_command "teststring" to_label @test_string // Текст
while true
wait 0
end
:test_number
0B35: samp 0@ = get_last_command_params
if
0AD4: 0@ = scan_string 0@ format "%d" 1@
then
if
0@ > 0
then
0AF8: samp add_message_to_chat "Вы ввели число %d" color 0xFFFFFF 1@
end
end
0B43: samp cmd_ret
:test_string
0B35: samp 0@ = get_last_command_params
0C17: 1@ = strlen 0@ // Размер строки
if
1@ > 0
then
0AF8: samp add_message_to_chat "Вы написали: %s" color 0xFFFFFF 0@
else
0AF8: samp add_message_to_chat "Вы ничего не написали" color 0xFFFFFF
end
0B43: samp cmd_ret
Код:{$CLEO} 0000: if 8AF7: get_samp_base_to 33@ then 0A93: end_custom_thread end repeat wait 400 until 0AFA: is_samp_structures_available wait 0 0B34: samp register_client_command "testnumber" to_label @test_number // Число 0B34: samp register_client_command "teststring" to_label @test_string // Текст while true wait 0 end :test_number 0B35: samp 0@ = get_last_command_params if 0AD4: 0@ = scan_string 0@ format "%d" 1@ then if 0@ > 0 then 0AF8: samp add_message_to_chat "Вы ввели число %d" color 0xFFFFFF 1@ end end 0B43: samp cmd_ret :test_string 0B35: samp 0@ = get_last_command_params 0C17: 1@ = strlen 0@ // Размер строки if 1@ > 0 then 0AF8: samp add_message_to_chat "Вы написали: %s" color 0xFFFFFF 0@ else 0AF8: samp add_message_to_chat "Вы ничего не написали" color 0xFFFFFF end 0B43: samp cmd_ret
wait 3000
0B2E: 0@ = read_module_memory "samp.dll" offset 0x13D60 size 2
while true
wait 0
// тут код... 0AB0...
gosub @on
end
// тут код... 0AB0
gosub @off
end
end
:on
wait 0
0B2E: 1@ = read_module_memory "samp.dll" offset 0x13D60 size 2
0AF8: samp add_message_to_chat "0@ = %d , 1@ = %d" color 0xFF61BB 0@ 1@
if
003B: 1@ == 0@
then
0B2D: write_module_memory "samp.dll" offset 0x13D60 value 0xC390 size 2
end
return
:off
wait 0
0B2E: 1@ = read_module_memory "samp.dll" offset 0x13D60 size 2
0AF8: samp add_message_to_chat "0@ = %d , 1@ = %d" color 0xFF61BB 0@ 1@
if
803B: not 1@ == 0@
then
0B2D: write_module_memory "samp.dll" offset 0x13D60 value 0@ size 2
end
return