Вопросы по CLEO-скриптингу

Stas

Новичок
52
4
Ну а если подумать и постараться, все равно никак вообще?
 

Dark_Knight

Me, me and me.
Друг
4,082
2,106
Так попробуй:
1@ = Actor.Car($PLAYER_ACTOR)
Actor.StorePos($PLAYER_ACTOR, 3@, 4@, 5@)
4@ -= 1
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 3@ 4@ 5@
036A: put_actor $PLAYER_ACTOR in_car 1@
Спасибо. Сделал так.
Код:
03C0: 0@ = actor $player_actor car 
0407: store_coords_to 1@ 2@ 3@ from_car 0@ with_offset 0.0 1.0 0.5 
0362: remove_actor $player_actor from_car_and_place_at 1@ 2@ 3@
wait 1000
036A: put_actor $player_actor in_car 0@
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Как можно получить ID пикапа, если не знаешь его хендл, но знаешь его координаты?
Или наоборот.
Пытался получить хендл через 0AE3: 2@ = random_object_near_point 3@ 4@ 5@ in_radius 5.0 find_next 0 , но увы, не получается найти ID по найденному хендлу.
Нужно для 0B53: samp 1@ = pickup_id_by_handle 0@
 

Dark_Knight

Me, me and me.
Друг
4,082
2,106
Радиус поставь больше и ты должен быть в зоне стрима пикапа.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Радиус поставь больше и ты должен быть в зоне стрима пикапа.
Смысл в том, что, если получать хендл через 0AE3: 2@ = random_object_near_point 3@ 4@ 5@ in_radius 5.0 find_next 0 и 0B51: samp 1@ = pickup_handle_by_id 0@ , то выводятся разные хендлы одного и того же пикапа, следовательно, я не могу "конвертировать" хендл в ID.

И да, радиус ставил в 150.0(хотя там до этого пикапа не более 50).

Делал для теста:
// 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}

//-------------MAIN---------------
0000: NOP
thread 'TEST'

const
COLOR_GREEN = 0xDD00
COLOR_RED = 0xFF0000
COLOR_ORANGE = 0xFF6F00
end

if not 1@ = SAMP.Base()
then 0A93: end_custom_thread
end

while not SAMP.Available()
wait 100
end

wait 0
//Commands
0B34: samp register_client_command "test" to_label @test

while true
wait 0
end

:test
0B35: samp 2@ = get_last_command_params
if 0AD4: 2@ = scan_string 2@ format "%d" 3@ //IF and SET
then
if 2@ >= 0
then
0B51: samp 4@ = pickup_handle_by_id 3@
0AF8: samp add_message_to_chat "pickup_handle_by_id: %d (Параметр: %d)" color COLOR_ORANGE 4@ 3@
wait 500
0B53: samp 4@ = pickup_id_by_handle 3@
0AF8: samp add_message_to_chat "pickup_id_by_handle: %d (Параметр: %d)" color COLOR_ORANGE 4@ 3@
wait 500
if
0AE3: 5@ = random_object_near_point 1200.35 -1753.41 13.59 in_radius 1.5 find_next 0
then
9@ = object.model(5@)
0AF8: samp add_message_to_chat "Handle: %d , ModelID: %d" color COLOR_GREEN 5@ 9@
end
end
end
0B43: cmd_ret
 

FYP

Известный
Администратор
1,763
5,916
http://gtamodding.ru/wiki/Адреса_Памяти_(SA)#.D0.9F.D0.B8.D0.BA.D0.B0.D0.BF.D1.8B
Код:
class CPickupSAInterface
{
public:   
    float    CurrentValue;        // For the revenue pickups  0
    CObjectSAInterface *pObject; // 4
    long    MonetaryValue;  // 8
    DWORD    RegenerationTime; // 12
    short    CoorsX, CoorsY, CoorsZ; //16 // 18 // 20
    WORD    MoneyPerDay; //22
    WORD    MI; // 24
    WORD    ReferenceIndex; // 26
    BYTE    Type; // 28
    BYTE    State : 1; //29
    BYTE    bNoAmmo : 1;
    BYTE    bHelpMessageDisplayed : 1;
    BYTE    bIsPickupNearby : 1;    // If the pickup is nearby it will get an object and it will get updated.
    BYTE    TextIndex : 3;            // What text label do we print out above it.
};
структура пикапа и информация о пуле пикапов, это должно помочь.
 
  • Нравится
Реакции: itsLegend

HYPERMUV

Новичок
21
3
нужны вычесления:
создания объекта за другим игроком, при этом не зависит от другово игрока как он стоит, а зависит от твоего место нахождения т.е. как не посмотрешь на игрока, объект должен как бы прятатся за другим игроком, на которого смотришь
[2]
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Возможно ли форматирование в тексте диалога, вызываемого через 0B3B: samp show_dialog ?