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

azdsfbzxv

Новичок
73
6
Опкода 0ADB: 26@ = car_model 20@ name выводит название авто касом. Допустим TAXI. Как перевести эту переменную в нижний регистр? Искал. Не нашел опкода
 

azdsfbzxv

Новичок
73
6
Хочу написать скрипт, что бы в нём определялись квадраты на карте. Но в голову не приходит как. Есть идея как то привязать к координатам. Но это всё настолько масштабно, что даже не понимаю как. В интернете искал, но не нашел. Я так понимаю это надо создать какой то список. Где будет соответствие координат плоскостей и квадратов. Есть идеи как это реализовать?
maxresdefault.jpg
 

p1cador

cerf
Проверенный
220
359
Хочу написать скрипт, что бы в нём определялись квадраты на карте. Но в голову не приходит как. Есть идея как то привязать к координатам. Но это всё настолько масштабно, что даже не понимаю как. В интернете искал, но не нашел. Я так понимаю это надо создать какой то список. Где будет соответствие координат плоскостей и квадратов. Есть идеи как это реализовать?
maxresdefault.jpg
Как раз делать список с координатами каждого квадрата будет очень масштабно.
У тебя есть 24х24 ровных квадрата. Проблема только одна - отсчет координат в гта начинается не с угла, а с середины. Нужно будет написать новую систему координат, которая будет иметь начало в углу(например, левом нижнем), в теории делается это достаточно просто, пара математических операций и условий <>. А потом просто делить координаты по х и у на 24. Но тут все ровно без минимум 24х2=48 условий вроде не обойтись... Хотя можно попробовать сделать в 2 раза меньше проверок, есть один очень хитрый и интересный способ, с телефона неудобно расписывать. Крч ты правильно сказал, это легко, но кропотливо
 
  • Нравится
Реакции: azdsfbzxv

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Хочу написать скрипт, что бы в нём определялись квадраты на карте. Но в голову не приходит как. Есть идея как то привязать к координатам. Но это всё настолько масштабно, что даже не понимаю как. В интернете искал, но не нашел. Я так понимаю это надо создать какой то список. Где будет соответствие координат плоскостей и квадратов. Есть идеи как это реализовать?
maxresdefault.jpg
Если что то выйдет-надеюсь поделишься xD
 

Bulava

Новичок
12
2
Код:
0503: create_actor_on_rope_with_pedtype 8 model #NULL at 2@ 3@ 4@ handle_as 9@
Этот код SAMP мой крах, как это исправить
 

azdsfbzxv

Новичок
73
6
Хочу написать скрипт, что бы в нём определялись квадраты на карте. Но в голову не приходит как. Есть идея как то привязать к координатам. Но это всё настолько масштабно, что даже не понимаю как. В интернете искал, но не нашел. Я так понимаю это надо создать какой то список. Где будет соответствие координат плоскостей и квадратов. Есть идеи как это реализовать?
maxresdefault.jpg
Как раз делать список с координатами каждого квадрата будет очень масштабно.
У тебя есть 24х24 ровных квадрата. Проблема только одна - отсчет координат в гта начинается не с угла, а с середины. Нужно будет написать новую систему координат, которая будет иметь начало в углу(например, левом нижнем), в теории делается это достаточно просто, пара математических операций и условий <>. А потом просто делить координаты по х и у на 24. Но тут все ровно без минимум 24х2=48 условий вроде не обойтись... Хотя можно попробовать сделать в 2 раза меньше проверок, есть один очень хитрый и интересный способ, с телефона неудобно расписывать. Крч ты правильно сказал, это легко, но кропотливо
В общем высчитал я координаты квадратов.
Попробовал вариант с уловиями больше или меньше. не заработал. Да и если бы заработал условий получилось бы 576 штук:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_31
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_31
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_94
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_94
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_94
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_94
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@ 
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
00D6: if and
0021:   2@ > -245.0
8031:   not  2@ >= 0.0
8031:   not  3@ >= 1250.0
0021:   3@ > 1000.0
0002: jump @Noname_94
0AD3: 8@ = format "È-12" 
0B6F: render font 9@ draw_text 8@ pos 1600 800 color -1
0002: jump @Noname_94
Нашел опкод 00B0 (Машина 1@ в пределах координат прямоугольной плоскости, от точки A: X Y до точки B: x y, с типом отображения сферы ( по середине прямоугольника ): флаг 0 [1- Видна, 0- Не видна]). Получилось. Проверил на одном квадрате. Скрипт работает. Но опять же всего квадратов 576. И условий получится 576:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_31
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_31 
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_94
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_94
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_94
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_94
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@ 
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -250.0 1250.0 cornerB 0.0 1000.0
004D: jump_if_false @Noname_94
0AD3: 8@ = format "È-12"
0B6F: render font 9@ draw_text 8@ pos 1600 800 color -1
0002: jump @Noname_94
Подумал. Решил определять с начало карту по горизонтали то есть букву. Потом по вертикали. Если Нахожусь в нужной букве, то ищет столбец-цифру. Опять же на одном квадрате получилось написать. Высчитал все строки и столбцы. Условия сократилось до 48. Но дальше дело не пошло. Дальше написать не могу. Просто каша в голове встала. Совсем запутался. Квадрат поидее определяться должен, но как дописать не понимаю. Вот если бы в переменную можно было бы записать русскую букву. Или вообще как то иначе надо делать. не пойму. Пол дня убил на это дело. Жаль бросать, ведь почти получилось:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_1
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_1
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_2
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_2
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_2
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_2
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@ 
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1

:Noname_3
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 3000.0 cornerB 3000.0 2750.0         //a
004D: jump_if_false @Noname_4
5@s = 'A'
0002: jump @Noname_27
:Noname_4
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2750.0 cornerB 3000.0 2500.0
004D: jump_if_false @Noname_5

0002: jump @Noname_27

:Noname_5
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2500.0 cornerB 3000.0 2250.0
004D: jump_if_false @Noname_6
5@s = 'B'
0002: jump @Noname_27

:Noname_6
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2250.0 cornerB 3000.0 2000.0
004D: jump_if_false @Noname_7
0002: jump @Noname_27

:Noname_7
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2000.0 cornerB 3000.0 1750.0
004D: jump_if_false @Noname_8
0002: jump @Noname_27

:Noname_8
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1750.0 cornerB 3000.0 1500.0
004D: jump_if_false @Noname_9
0002: jump @Noname_27

:Noname_9
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1500.0 cornerB 3000.0 1250.0
004D: jump_if_false @Noname_10
0002: jump @Noname_27

:Noname_10
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1250.0 cornerB 3000.0 1000.0
004D: jump_if_false @Noname_11
0002: jump @Noname_27

:Noname_11
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1000.0 cornerB 3000.0 750.0
004D: jump_if_false @Noname_12
0002: jump @Noname_27

:Noname_12
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 750.0 cornerB 3000.0 500.0
004D: jump_if_false @Noname_13
0002: jump @Noname_27

:Noname_13
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 500.0 cornerB 3000.0 250.0
004D: jump_if_false @Noname_14
0002: jump @Noname_27

:Noname_14
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 250.0 cornerB 3000.0 0.0
004D: jump_if_false @Noname_15
0002: jump @Noname_27

:Noname_15
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 0.0 cornerB 3000.0 -250.0
004D: jump_if_false @Noname_16
0002: jump @Noname_27

:Noname_16
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -250.0 cornerB 3000.0 -750.0
004D: jump_if_false @Noname_17
0002: jump @Noname_27

:Noname_17
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -500.0 cornerB 3000.0 -1000.0
004D: jump_if_false @Noname_18
0002: jump @Noname_27

:Noname_18
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -750.0 cornerB 3000.0 -1500.0
004D: jump_if_false @Noname_19
0002: jump @Noname_27

:Noname_19
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1000.0 cornerB 3000.0 -1750.0
004D: jump_if_false @Noname_20
0002: jump @Noname_27

:Noname_20
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1250.0 cornerB 3000.0 -2000.0
004D: jump_if_false @Noname_21
0002: jump @Noname_27

:Noname_21
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1500.0 cornerB 3000.0 -2250.0
004D: jump_if_false @Noname_22
0002: jump @Noname_27

:Noname_22
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1750.0 cornerB 3000.0 -1500.0
004D: jump_if_false @Noname_23
0002: jump @Noname_27

:Noname_23
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2000.0 cornerB 3000.0 -1750.0
004D: jump_if_false @Noname_24
0002: jump @Noname_27

:Noname_24
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2250.0 cornerB 3000.0 -2000.0
004D: jump_if_false @Noname_25
0002: jump @Noname_27

:Noname_25
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2500.0 cornerB 3000.0 -2250.0
004D: jump_if_false @Noname_26
0002: jump @Noname_27

:Noname_26
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2750.0 cornerB 3000.0 -2500.0
004D: jump_if_false @Noname_2
0002: jump @Noname_27

//-------------1-24---------------

:Noname_27
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 3000.0 cornerB -2750.0 -3000.0
004D: jump_if_false @Noname_28
13@ = 1
0002: jump @Noname_51

:Noname_28
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2750.0 3000.0 cornerB -2500.0 -3000.0
004D: jump_if_false @Noname_29
13@ = 2
0002: jump @Noname_51

:Noname_29
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2500.0 3000.0 cornerB -2250.0 -3000.0
004D: jump_if_false @Noname_30
13@ = 3
0002: jump @Noname_51

:Noname_30
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2250.0 3000.0 cornerB -2000.0 -3000.0
004D: jump_if_false @Noname_31
13@ = 4
0002: jump @Noname_51

:Noname_31
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2000.0 3000.0 cornerB -1750.0 -3000.0
004D: jump_if_false @Noname_32
13@ = 5
0002: jump @Noname_51

:Noname_32
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1750.0 3000.0 cornerB -1500.0 -3000.0
004D: jump_if_false @Noname_33
13@ = 6
0002: jump @Noname_51

:Noname_33
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1500.0 3000.0 cornerB -1250.0 -3000.0
004D: jump_if_false @Noname_34
13@ = 7
0002: jump @Noname_51

:Noname_34
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1250.0 3000.0 cornerB -1000.0 -3000.0
004D: jump_if_false @Noname_35
13@ = 8
0002: jump @Noname_51

:Noname_35
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1000.0 3000.0 cornerB -750.0 -3000.0
004D: jump_if_false @Noname_36
13@ = 9
0002: jump @Noname_51

:Noname_36
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -750.0 3000.0 cornerB -500.0 -3000.0
004D: jump_if_false @Noname_37
13@ = 10
0002: jump @Noname_51

:Noname_37
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -500.0 3000.0 cornerB -250.0 -3000.0
004D: jump_if_false @Noname_38
13@ = 11
0002: jump @Noname_51

:Noname_38
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -250.0 3000.0 cornerB 0.0 -3000.0
004D: jump_if_false @Noname_39
13@ = 12
0002: jump @Noname_51

:Noname_39
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 0.0 3000.0 cornerB 250.0 -3000.0
004D: jump_if_false @Noname_40
13@ = 13
0002: jump @Noname_51

:Noname_40
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 250.0 3000.0 cornerB 500.0 -3000.0
004D: jump_if_false @Noname_41
13@ = 14
0002: jump @Noname_51

:Noname_41
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 500.0 3000.0 cornerB 750.0 -3000.0
004D: jump_if_false @Noname_42
13@ = 15
0002: jump @Noname_51

:Noname_42
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 750.0 3000.0 cornerB 1000.0 -3000.0
004D: jump_if_false @Noname_43
13@ = 16
0002: jump @Noname_51

:Noname_43
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1000.0 3000.0 cornerB 1250.0 -3000.0
004D: jump_if_false @Noname_44
13@ = 17
0002: jump @Noname_51

:Noname_44
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1250.0 3000.0 cornerB 1500.0 -3000.0
004D: jump_if_false @Noname_45
13@ = 18
0002: jump @Noname_51

:Noname_45
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1500.0 3000.0 cornerB 1750.0 -3000.0
004D: jump_if_false @Noname_46
13@ = 19
0002: jump @Noname_51

:Noname_46
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1750.0 3000.0 cornerB 2000.0 -3000.0
004D: jump_if_false @Noname_47
13@ = 20
0002: jump @Noname_51

:Noname_47
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2000.0 3000.0 cornerB 2250.0 -3000.0
004D: jump_if_false @Noname_48
13@ = 21
0002: jump @Noname_51

:Noname_48
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2250.0 3000.0 cornerB 2500.0 -3000.0
004D: jump_if_false @Noname_49
13@ = 22
0002: jump @Noname_51

:Noname_49
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2500.0 3000.0 cornerB 2750.0 -3000.0
004D: jump_if_false @Noname_50
13@ = 23
0002: jump @Noname_51

:Noname_50
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2750.0 3000.0 cornerB 3000.0 -3000.0
004D: jump_if_false @Noname_2
13@ = 24
0002: jump @Noname_51

....
 

Perojek)0

Известный
205
3
У меня появилась проблема. Суть в том, что мне надо разделить строку на две части, но у меня это не получается сделать.
Например такая строка: "NIck_Name: Привет c: Как дела?)"
То есть, надо получить отдельно "Nick_Name" и "Привет c: Как дела?)".
Опкодом 0C16 не получается и чё-т хз, что делать(
P.s. на месте "c:" мог быть любой другой смайлик)
 

Goldfish

Известный
106
22
В общем высчитал я координаты квадратов.
Попробовал вариант с уловиями больше или меньше. не заработал. Да и если бы заработал условий получилось бы 576 штук:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_31
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_31
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_94
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_94
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_94
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_94
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
00D6: if and
0021:   2@ > -245.0
8031:   not  2@ >= 0.0
8031:   not  3@ >= 1250.0
0021:   3@ > 1000.0
0002: jump @Noname_94
0AD3: 8@ = format "È-12"
0B6F: render font 9@ draw_text 8@ pos 1600 800 color -1
0002: jump @Noname_94
Нашел опкод 00B0 (Машина 1@ в пределах координат прямоугольной плоскости, от точки A: X Y до точки B: x y, с типом отображения сферы ( по середине прямоугольника ): флаг 0 [1- Видна, 0- Не видна]). Получилось. Проверил на одном квадрате. Скрипт работает. Но опять же всего квадратов 576. И условий получится 576:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_31
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_31
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_94
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_94
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_94
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_94
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -250.0 1250.0 cornerB 0.0 1000.0
004D: jump_if_false @Noname_94
0AD3: 8@ = format "È-12"
0B6F: render font 9@ draw_text 8@ pos 1600 800 color -1
0002: jump @Noname_94
Подумал. Решил определять с начало карту по горизонтали то есть букву. Потом по вертикали. Если Нахожусь в нужной букве, то ищет столбец-цифру. Опять же на одном квадрате получилось написать. Высчитал все строки и столбцы. Условия сократилось до 48. Но дальше дело не пошло. Дальше написать не могу. Просто каша в голове встала. Совсем запутался. Квадрат поидее определяться должен, но как дописать не понимаю. Вот если бы в переменную можно было бы записать русскую букву. Или вообще как то иначе надо делать. не пойму. Пол дня убил на это дело. Жаль бросать, ведь почти получилось:
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_1
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_1
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_2
0001: wait 0 ms
0256:   player $PLAYER_ACTOR defined
004D: jump_if_false @Noname_2
0449:   actor $PLAYER_ACTOR in_a_car
004D: jump_if_false @Noname_2
03C0: 11@ = actor $PLAYER_ACTOR car
004D: jump_if_false @Noname_2
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0AD3: 8@ = format "%f | %f | %f" 2@ 3@ 4@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1

:Noname_3
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 3000.0 cornerB 3000.0 2750.0         //a
004D: jump_if_false @Noname_4
5@s = 'A'
0002: jump @Noname_27
:Noname_4
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2750.0 cornerB 3000.0 2500.0
004D: jump_if_false @Noname_5

0002: jump @Noname_27

:Noname_5
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2500.0 cornerB 3000.0 2250.0
004D: jump_if_false @Noname_6
5@s = 'B'
0002: jump @Noname_27

:Noname_6
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2250.0 cornerB 3000.0 2000.0
004D: jump_if_false @Noname_7
0002: jump @Noname_27

:Noname_7
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 2000.0 cornerB 3000.0 1750.0
004D: jump_if_false @Noname_8
0002: jump @Noname_27

:Noname_8
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1750.0 cornerB 3000.0 1500.0
004D: jump_if_false @Noname_9
0002: jump @Noname_27

:Noname_9
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1500.0 cornerB 3000.0 1250.0
004D: jump_if_false @Noname_10
0002: jump @Noname_27

:Noname_10
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1250.0 cornerB 3000.0 1000.0
004D: jump_if_false @Noname_11
0002: jump @Noname_27

:Noname_11
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 1000.0 cornerB 3000.0 750.0
004D: jump_if_false @Noname_12
0002: jump @Noname_27

:Noname_12
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 750.0 cornerB 3000.0 500.0
004D: jump_if_false @Noname_13
0002: jump @Noname_27

:Noname_13
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 500.0 cornerB 3000.0 250.0
004D: jump_if_false @Noname_14
0002: jump @Noname_27

:Noname_14
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 250.0 cornerB 3000.0 0.0
004D: jump_if_false @Noname_15
0002: jump @Noname_27

:Noname_15
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 0.0 cornerB 3000.0 -250.0
004D: jump_if_false @Noname_16
0002: jump @Noname_27

:Noname_16
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -250.0 cornerB 3000.0 -750.0
004D: jump_if_false @Noname_17
0002: jump @Noname_27

:Noname_17
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -500.0 cornerB 3000.0 -1000.0
004D: jump_if_false @Noname_18
0002: jump @Noname_27

:Noname_18
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -750.0 cornerB 3000.0 -1500.0
004D: jump_if_false @Noname_19
0002: jump @Noname_27

:Noname_19
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1000.0 cornerB 3000.0 -1750.0
004D: jump_if_false @Noname_20
0002: jump @Noname_27

:Noname_20
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1250.0 cornerB 3000.0 -2000.0
004D: jump_if_false @Noname_21
0002: jump @Noname_27

:Noname_21
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1500.0 cornerB 3000.0 -2250.0
004D: jump_if_false @Noname_22
0002: jump @Noname_27

:Noname_22
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -1750.0 cornerB 3000.0 -1500.0
004D: jump_if_false @Noname_23
0002: jump @Noname_27

:Noname_23
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2000.0 cornerB 3000.0 -1750.0
004D: jump_if_false @Noname_24
0002: jump @Noname_27

:Noname_24
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2250.0 cornerB 3000.0 -2000.0
004D: jump_if_false @Noname_25
0002: jump @Noname_27

:Noname_25
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2500.0 cornerB 3000.0 -2250.0
004D: jump_if_false @Noname_26
0002: jump @Noname_27

:Noname_26
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 -2750.0 cornerB 3000.0 -2500.0
004D: jump_if_false @Noname_2
0002: jump @Noname_27

//-------------1-24---------------

:Noname_27
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -3000.0 3000.0 cornerB -2750.0 -3000.0
004D: jump_if_false @Noname_28
13@ = 1
0002: jump @Noname_51

:Noname_28
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2750.0 3000.0 cornerB -2500.0 -3000.0
004D: jump_if_false @Noname_29
13@ = 2
0002: jump @Noname_51

:Noname_29
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2500.0 3000.0 cornerB -2250.0 -3000.0
004D: jump_if_false @Noname_30
13@ = 3
0002: jump @Noname_51

:Noname_30
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2250.0 3000.0 cornerB -2000.0 -3000.0
004D: jump_if_false @Noname_31
13@ = 4
0002: jump @Noname_51

:Noname_31
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -2000.0 3000.0 cornerB -1750.0 -3000.0
004D: jump_if_false @Noname_32
13@ = 5
0002: jump @Noname_51

:Noname_32
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1750.0 3000.0 cornerB -1500.0 -3000.0
004D: jump_if_false @Noname_33
13@ = 6
0002: jump @Noname_51

:Noname_33
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1500.0 3000.0 cornerB -1250.0 -3000.0
004D: jump_if_false @Noname_34
13@ = 7
0002: jump @Noname_51

:Noname_34
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1250.0 3000.0 cornerB -1000.0 -3000.0
004D: jump_if_false @Noname_35
13@ = 8
0002: jump @Noname_51

:Noname_35
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -1000.0 3000.0 cornerB -750.0 -3000.0
004D: jump_if_false @Noname_36
13@ = 9
0002: jump @Noname_51

:Noname_36
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -750.0 3000.0 cornerB -500.0 -3000.0
004D: jump_if_false @Noname_37
13@ = 10
0002: jump @Noname_51

:Noname_37
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -500.0 3000.0 cornerB -250.0 -3000.0
004D: jump_if_false @Noname_38
13@ = 11
0002: jump @Noname_51

:Noname_38
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA -250.0 3000.0 cornerB 0.0 -3000.0
004D: jump_if_false @Noname_39
13@ = 12
0002: jump @Noname_51

:Noname_39
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 0.0 3000.0 cornerB 250.0 -3000.0
004D: jump_if_false @Noname_40
13@ = 13
0002: jump @Noname_51

:Noname_40
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 250.0 3000.0 cornerB 500.0 -3000.0
004D: jump_if_false @Noname_41
13@ = 14
0002: jump @Noname_51

:Noname_41
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 500.0 3000.0 cornerB 750.0 -3000.0
004D: jump_if_false @Noname_42
13@ = 15
0002: jump @Noname_51

:Noname_42
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 750.0 3000.0 cornerB 1000.0 -3000.0
004D: jump_if_false @Noname_43
13@ = 16
0002: jump @Noname_51

:Noname_43
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1000.0 3000.0 cornerB 1250.0 -3000.0
004D: jump_if_false @Noname_44
13@ = 17
0002: jump @Noname_51

:Noname_44
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1250.0 3000.0 cornerB 1500.0 -3000.0
004D: jump_if_false @Noname_45
13@ = 18
0002: jump @Noname_51

:Noname_45
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1500.0 3000.0 cornerB 1750.0 -3000.0
004D: jump_if_false @Noname_46
13@ = 19
0002: jump @Noname_51

:Noname_46
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 1750.0 3000.0 cornerB 2000.0 -3000.0
004D: jump_if_false @Noname_47
13@ = 20
0002: jump @Noname_51

:Noname_47
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2000.0 3000.0 cornerB 2250.0 -3000.0
004D: jump_if_false @Noname_48
13@ = 21
0002: jump @Noname_51

:Noname_48
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2250.0 3000.0 cornerB 2500.0 -3000.0
004D: jump_if_false @Noname_49
13@ = 22
0002: jump @Noname_51

:Noname_49
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2500.0 3000.0 cornerB 2750.0 -3000.0
004D: jump_if_false @Noname_50
13@ = 23
0002: jump @Noname_51

:Noname_50
00D6: if
00B0:   car 11@ sphere 0 in_rectangle_cornerA 2750.0 3000.0 cornerB 3000.0 -3000.0
004D: jump_if_false @Noname_2
13@ = 24
0002: jump @Noname_51

....

Вот функа, преобразовывает первый вариант координат во второй
sXbiAUv_mGg.jpg


Затем возвращает номер квадрата по X и Y соответственно
так например верхняя левая часть карты это 1,1,а нижняя правая это 24,24

код функи
Код:
GetCoordOfSection
10@ = 3000.0 // X
11@ = 3000.0 // Y
Actor.StorePos($player_actor, 1@, 2@, 3@)

//перевод системы координат
//X
if 1@ > 0.0
then
    005B: 10@ += 1@
else
    0013: 1@ *= -1.0 // модуль числа
    0063: 10@ -= 1@
end 
//Y
if 2@ > 0.0
then
    0063: 11@ -= 2@
else
    0013: 2@ *= -1.0 // модуль числа
    005B: 11@ += 2@
end

// 24x24=576
// координатное поле от верхнего левого угла начиная с 0 до 6000.0 (3000.0+3000.0)  с шагом квадратом по 250
10@ /= 250.0
0AB1: @GetFloatToTwoInt 1 float 10@ store_2_int 33@ 5@
if 5@ > 0
then
    0092: 3@ = float 10@ to_integer
    000A: 3@ += 1
else
    0092: 3@ = float 10@ to_integer
end
11@ /= 250.0
0AB1: @GetFloatToTwoInt 1 float 11@ store_2_int 33@ 5@
if 5@ > 0
then
    0092: 1@ = float 11@ to_integer
    000A: 1@ += 1
else
    0092: 1@ = float 11@ to_integer
end
0AB2: ret 2 1@ 3@

:GetFloatToTwoInt  // 11.22
0092: 1@ = float 0@ to_integer  // 11
0093: 2@ = integer 1@ to_float // 11.00
0063: 0@ -= 2@ // 11.22 - 11.00 = 0.22
0@ *= 100.0  // 0.22 * 100.0 = 22.0
0092: 2@ = float 0@ to_integer  // 22
0AB2: ret 2 1@ 2@

Код:
{$CLEO}

0000:
while 8AFA: not is_samp_available // repeat
    wait 0
end

while true
    wait 0
    0AB1: call_scm_func @GetCoordOfSection 0 store_X_to 1@ Y_to 2@
    0AD1: show_formatted_text_highpriority "X=%i / Y=%i" time 100 1@ 2@
end

:GetCoordOfSection
10@ = 3000.0 // X
11@ = 3000.0 // Y
Actor.StorePos($player_actor, 1@, 2@, 3@)

//перевод системы координат
//X
if 1@ > 0.0
then
    005B: 10@ += 1@
else
    0013: 1@ *= -1.0 // модуль числа
    0063: 10@ -= 1@
end 
//Y
if 2@ > 0.0
then
    0063: 11@ -= 2@
else
    0013: 2@ *= -1.0 // модуль числа
    005B: 11@ += 2@
end

// 24x24=576
// координатное поле от верхнего левого угла начиная с 0 до 6000.0 (3000.0+3000.0)  с шагом квадратом по 250
10@ /= 250.0
0AB1: @GetFloatToTwoInt 1 float 10@ store_2_int 33@ 5@
if 5@ > 0
then
    0092: 3@ = float 10@ to_integer
    000A: 3@ += 1
else
    0092: 3@ = float 10@ to_integer
end
11@ /= 250.0
0AB1: @GetFloatToTwoInt 1 float 11@ store_2_int 33@ 5@
if 5@ > 0
then
    0092: 1@ = float 11@ to_integer
    000A: 1@ += 1
else
    0092: 1@ = float 11@ to_integer
end
0AB2: ret 2 1@ 3@

:GetFloatToTwoInt  // 11.22
0092: 1@ = float 0@ to_integer  // 11
0093: 2@ = integer 1@ to_float // 11.00
0063: 0@ -= 2@ // 11.22 - 11.00 = 0.22
0@ *= 100.0  // 0.22 * 100.0 = 22.0
0092: 2@ = float 0@ to_integer  // 22
0AB2: ret 2 1@ 2@

Дальше думай сам как будешь вычислять "квадраты"
 
  • Нравится
Реакции: azdsfbzxv и DarkP1xel

MelomanCool

Новичок
Проверенный
65
41
Хочу написать скрипт, что бы в нём определялись квадраты на карте.
Тебе нужно из координат получать название квадрата, в котором они находятся?

У меня появилась проблема. Суть в том, что мне надо разделить строку на две части, но у меня это не получается сделать.
Например такая строка: "NIck_Name: Привет c: Как дела?)"
То есть, надо получить отдельно "Nick_Name" и "Привет c: Как дела?)".
Опкодом 0C16 не получается и чё-т хз, что делать(
P.s. на месте "c:" мог быть любой другой смайлик)
CLEO:
0AD4: 29@ = scan_string 0@ format "%[^:]: %[^\n]" 1@ 2@
Должно работать. Тестировал тут: http://ideone.com/N4my10

Насчет %[] можно почитать, например, здесь: http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/13/scanf.htm
Называется эта штука "scanset".
 
Последнее редактирование модератором:
  • Нравится
Реакции: xSpiridon и Yanki

azdsfbzxv

Новичок
73
6
У меня появилась проблема. Суть в том, что мне надо разделить строку на две части, но у меня это не получается сделать.
Например такая строка: "NIck_Name: Привет c: Как дела?)"
То есть, надо получить отдельно "Nick_Name" и "Привет c: Как дела?)".
Опкодом 0C16 не получается и чё-т хз, что делать(
P.s. на месте "c:" мог быть любой другой смайлик)
Вот мой скрипт. Балуюсь им.
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 5@ = allocate_memory_size 64
0AC8: 6@ = allocate_memory_size 64
0AC8: 7@ = allocate_memory_size 64

:Noname_37
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_37

:Noname_55
0001: wait 0 ms
00D6: if
0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
004D: jump_if_false @Noname_55
0B2B: samp 2@ = get_player_id_by_actor_handle 1@
0B36: samp 3@ = get_player_nickname 2@
0C13: strcpy destination 4@ source 3@
0C16: 5@ = strtok string1 4@ string2 "_"
0C18: 6@ = strstr string1 3@ string2 "_"
0C16: 7@ = strtok string1 6@ string2 "_"
00D6: if
8039:   not  6@ == 0
004D: jump_if_false @Noname_55
00D6: if
0AB0:   key_pressed 49
004D: jump_if_false @Noname_190
0AF9: samp say_msg "%s" 5@ 
0001: wait 1000 ms
0002: jump @Noname_55

:Noname_190
00D6: if
0AB0:   key_pressed 50
004D: jump_if_false @Noname_55
0AF9: samp say_msg "/me посмотрел на %s %s" 5@ 7@ 
0001: wait 1000 ms
0002: jump @Noname_55
 

Perojek)0

Известный
205
3
Вот мой скрипт. Балуюсь им.
CLEO:
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 5@ = allocate_memory_size 64
0AC8: 6@ = allocate_memory_size 64
0AC8: 7@ = allocate_memory_size 64

:Noname_37
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_37

:Noname_55
0001: wait 0 ms
00D6: if
0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
004D: jump_if_false @Noname_55
0B2B: samp 2@ = get_player_id_by_actor_handle 1@
0B36: samp 3@ = get_player_nickname 2@
0C13: strcpy destination 4@ source 3@
0C16: 5@ = strtok string1 4@ string2 "_"
0C18: 6@ = strstr string1 3@ string2 "_"
0C16: 7@ = strtok string1 6@ string2 "_"
00D6: if
8039:   not  6@ == 0
004D: jump_if_false @Noname_55
00D6: if
0AB0:   key_pressed 49
004D: jump_if_false @Noname_190
0AF9: samp say_msg "%s" 5@
0001: wait 1000 ms
0002: jump @Noname_55

:Noname_190
00D6: if
0AB0:   key_pressed 50
004D: jump_if_false @Noname_55
0AF9: samp say_msg "/me посмотрел на %s %s" 5@ 7@
0001: wait 1000 ms
0002: jump @Noname_55
А мне это зачем?))