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

hnnssy

Известный
Друг
2,684
2,745
спасибо, щас попробую

В общем, вот мог говнокод. Пишу скрипт, который выводит в чат 1 и 2 цвета машины
Сначала всё было как в слоу-моушн, пед двигался в два раза медленнее, чем обычно. Показывало правильно через раз, и то только первый колор, вместо второго какое-то большое число.
CLEO:
{$CLEO .cs}
0000: NOP

repeat
    wait 0
until SAMP.Available()

0b34: samp "getcolor" @command
1@ = 0

:ccolor
wait 0
if 1@ == 1
then
03C0: 0@ = actor $PLAYER_ACTOR car
if 00DB: actor $PLAYER_ACTOR in_car 0@
then
03F3: get_car 0@ primary_color_to 2@ secondary_color_to 3@
0af8: "color 1: %d, color 2: %d." 2@ 3@ color 0xffffff
1@ = 0
end
end
goto @ccolor

:command                                                           
if 1@ == 1
     then
     1@ = 0
     else
     1@ = 1
end

0B43: samp cmd_ret

Выделил память, заработало :)
CLEO:
{$CLEO}
0000:
wait 2000

0b3d: "vcols" @vcols

while true
wait 0
end

:vcols
if Actor.Driving($PLAYER_CTOR)
then
  03C0: 0@ = actor $PLAYER_ACTOR car
  03F3: get_car_colours 0@ store_to 1@ 2@
  0AF8:  "%d / %d" -1 1@ 2@  
end
0B43: samp cmd_ret
 
  • Нравится
Реакции: Сэнд

AWRage

Активный
642
141
Почему нельзя использовать глобальные переменные, ведь в справочника Санни Билдера почти все примеры на них?
 

Vovich

HOT
Проверенный
717
197
Почему нельзя использовать глобальные переменные, ведь в справочника Санни Билдера почти все примеры на них?
Потому что глобальные переменные имеют свойства использовать одну и ту же ячейку памяти.
По этому информация которая хранится в них , допустим при чтении одним скриптом будет читатся инфа из одной ячейки, а ты в этом время мог записать другим скриптом инфу в глобальную переменную.
*Кратко говоря, глобальные переменные связывают скрипты между собой, из-за общих ячеек памяти в игре.
Глобальные переменные которые можно использовать: $PLAYER_ACTOR , $PLAYER_CHAR
 
  • Нравится
Реакции: AWRage

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Почему нельзя использовать глобальные переменные, ведь в справочника Санни Билдера почти все примеры на них?
Ты можешь использовать их только для чтения. Описывать свои и перезаписывать значения старых не рекомендуется.
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
0ADA: 5@ = scan_file 0@ format "ArmorBarColor %i %i %i %i"1@ 2@ 3@ 4@
В чем проблема? Этот опкод не считывает параметры ArmorBarColor с файла.
Файл:
Код:
HealthBarColor 255 255 85 85
ArmorBarColor 255 255 255 255
 

01EG

Известный
Проверенный
631
344
Почему нельзя использовать глобальные переменные, ведь в справочника Санни Билдера почти все примеры на них?
Здесь ответ: https://sannybuilder.com/forums/viewtopic.php?pid=3747#p3747
У меня работает.
Странно, хотя взял твой дописанный код, у меня почему-то не работает. Ты задаешь: /flood Text "Time" ?
 

AWRage

Активный
642
141
Здесь ответ: https://sannybuilder.com/forums/viewtopic.php?pid=3747#p3747

Странно, хотя взял твой дописанный код, у меня почему-то не работает. Ты задаешь: /flood Text "Time" ?
/flood /time 200
Если будешь писать не одно слово, то конечно он не будет работать, прийдется тогда доработать код.
 

nikita_cheater

Новичок
13
3
0ADA: 5@ = scan_file 0@ format "ArmorBarColor %i %i %i %i"1@ 2@ 3@ 4@
В чем проблема? Этот опкод не считывает параметры ArmorBarColor с файла.
Файл:
Код:
HealthBarColor 255 255 85 85
ArmorBarColor 255 255 255 255
Если я все правильно понял, то:
0ADA: 5@ = scan_file 0@ format "ArmorBarColor %d %d %d %d" 1@ 2@ 3@ 4@