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

Vovich

HOT
Проверенный
717
197
Вроде, понял, как можно это сделать, но у меня новая проблема :D

Почему в некоторых скриптах в хуке, где написано BS_TYPE_INT и т.д.
Компилирует нормально, а в некоторых пишет, типо, ожидалась 3 или сколько-то параметров?(В обоих случаях констант не было)
{INCLUDE SF} поставь после {CLEO .cs}
 
  • Нравится
Реакции: Perojek)0

Vovich

HOT
Проверенный
717
197
Мне в Packet_Player_Sync(Онфут), а именно в byteSpecialActiton нужно отправить 3 (Special_Action_Enter_Vehicle)
CLEO:
0B20: samp 0@ = actor_handle_by_samp_player_id $PLAYER_ACTOR
0BBA: samp store_player 0@ onfoot_data 1@
alloc 1@ 128
0C0D: struct 1@ offset 37 size 1 = SPECIAL_ACTION_ENTER_VEHICLE
0C0D: struct 1@ offset 37 size 1 = SPECIAL_ACTION_ENTER_VEHICLE
0C0D: struct 1@ offset 37 size 1 = SPECIAL_ACTION_ENTER_VEHICLE
free 1@
Правильно ли я сделал ?
uint8_t - это по твоему string? Нет не правильно.
В оффсете 37 хранится целое число (без знаков и т.д.), тебе нужно записывать id этой анимации.
 
  • Нравится
Реакции: 01EG

01EG

Известный
Проверенный
629
354
uint8_t - это по твоему string? Нет не правильно.
В оффсете 37 хранится целое число (без знаков и т.д.), тебе нужно записывать id этой анимации.
https://sampwiki.blast.hk/wiki/SpecialActions_RU
3 = SPECIAL_ACTION_ENTER_VEHICLE
Эта анимация соответствует 3-му иду, значит
CLEO:
0B20: samp 0@ = actor_handle_by_samp_player_id $PLAYER_ACTOR
0BBA: samp store_player 0@ onfoot_data 1@
alloc 1@ 128
0C0D: struct 1@ offset 37 size 1 = 3
0C0D: struct 1@ offset 37 size 1 = 3
0C0D: struct 1@ offset 37 size 1 = 3
free 1@
Так пойдет ?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Сначала выделяешь память, потом собираешь структуру, а потом отправляешь. И зачем ты 3 раза записываешь одно и тоже?
 
  • Нравится
Реакции: 01EG

01EG

Известный
Проверенный
629
354
Сначала выделяешь память, потом собираешь структуру, а потом отправляешь. И зачем ты 3 раза записываешь одно и тоже?
По примеру с этой темы - https://www.blast.hk/threads/6326/ . MgMoldova сначала собрал структуру, а потом выделил память.
Перепутал. Нужно один раз всего лишь.
Так как правильно сначала выделить память или потом ?
 
  • Нравится
Реакции: haox

Perojek)0

Известный
205
3
Как узнать, что за число написано в последней строке?
Если в чате, то 0B75: samp get_chat_string 0@ text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 4@
0@ = 99 Последняя строка.
Потом, можешь просканировать через 0AD4 или sscanf

Как можно заморозить персонажа?
То есть, им определённое время нельзя управлять, чтобы он тупо стоял
 
Последнее редактирование модератором:

01EG

Известный
Проверенный
629
354
Можно ли реализовать арифметические операции на CLEO без длинного кода? Чтобы результат записать в переменную.
Смотря какие. Почему должно быть нельзя ? По-твоему как делаются аимы ?
https://www.blast.hk/wiki/opcodes:sampfuncs:list - ищешь math opcodes и делаешь ,что тебе нужно
 

01EG

Известный
Проверенный
629
354
Хочу сделать проверку на анимацию. Записываю текущую анимацию в переменную, правильно ли я сравниваю ?
CLEO:
0@ = Actor.Animation($PLAYER_ACTOR)
if 0@ == WEAPON_CROUCH
Мб WEAPON_CROUCH я должен записать в переменную выделить память переменной, так как я сравниваю строку(WEAPON_CROUCH, ну как не строку, а само название анимации, является строкой)
Короче, помогите, думаю это не сложный вопрос.