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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462

Проверяй в два цикла, а то маленькая вероятность найти объект с данной моделью.
Код:
while true
    wait 0
    Actor.StorePos($player_actor, 17@, 18@, 19@)
    if 0AE3: 4@ = random_object_near_point 17@ 18@ 19@ in_radius 90.0 find_next 0
    then
        gosub @action
 
        while 0AE3: 4@ = random_object_near_point 17@ 18@ 19@ in_radius 90.0 find_next 1
            wait 0
            gosub @action
        end 
    end
end
 
:action
5@ = object.model(4@)
if 5@ == 1273
then
    0400: store_coords_to 20@ 21@ 22@ from_object 4@ with_offset 0.0 0.0 0.0
    Actor.PutAt($player_actor, 20@ 21@ 22@)
end
return
 

[Nexus]

Известный
41
2
Такой вопрос: собственно как в просто диалоге сделать только одну клавишу?

0B3B: samp show_dialog id 45 caption "{ffffff}текст" text "{ffde7f}текст: {ffffff}200." button_1 "Закрыть" button_2 "Закрыть" style DIALOG_STYLE_MSGBOX
 

hnnssy

Известный
Друг
2,684
2,751
Такой вопрос: собственно как в просто диалоге сделать только одну клавишу?

0B3B: samp show_dialog id 45 caption "{ffffff}текст" text "{ffde7f}текст: {ffffff}200." button_1 "Закрыть" button_2 "Закрыть" style DIALOG_STYLE_MSGBOX
button_1 "Закрыть" button_2 ""
 
  • Нравится
Реакции: [Nexus]

SR_team

like pancake
BH Team
4,720
6,376
Странно. Добавь проверку, что игрок в стриме.

Скорее всего, координаты 0.0 0.0 0.0. Игрок в стриме хоть?

Он же написал, что до игрока на деле 6м
Код, основное:






т.е у меня почти всегда расстояние от 1500 до 1700
Кидай значит все
 

artF

Новичок
24
0
Скорее всего, координаты 0.0 0.0 0.0. Игрок в стриме хоть?

Странно. Добавь проверку, что игрок в стриме.
Да, игрок в стриме, как бы суть скрипта в следующем:
Он выводит в чат все ники в зоне стрима, указывая ID ника, расстояние до него, модель скина
То что ники в стриме это прям точно. Есть и ид и его хендл, и прчая муйня, но расстояние как то криво пишет..
то что я кинул это часть в цикле перебора по никам которые в стриме..
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Да, игрок в стриме, как бы суть скрипта в следующем:
Он выводит в чат все ники в зоне стрима, указывая ID ника, расстояние до него
То что ники в стриме это прям точно. Есть и ид и его хендл, и прчая муйня, но расстояние как то криво пишет..
то что я кинул это часть в цикле перебора по никам которые в стриме..

0509: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@ не соответствует из SASCM.ini. Его таково использование:
0509: 5@ = distance_between_XY 7@ 8@ and_XY 2@ 3@
 
  • Нравится
Реакции: artF

artF

Новичок
24
0
Остаются еще пару вопросов:
Столкнулся с такой проблемой. так как нету свича тут то пришлось делать множественно вложенный цикл
if 14@ == 104
then
//тут пишем в чат
else
if 14@==102 then
//тут друго сообщение
else
//итд до конца.
end

end

В итоге ловлю такую ошибку:
gGTlQYved_s.jpg

Хотя все if then else закыты end'ом. Даже психанул написал цикл на пхп который составил мне код. Когда значений не так много, все сохраняется, но в какой то момент говорит, мол, ошибка! Что делать? Есть другое решение? после 25 вложенного ифа ломается такая ошибка
--------------UPD:
Тупанул. Наверное нужно попробовать сделать массив с нужными значениями и цикл перебора массива и сравнения значения с текущим. Попробую, отпишусь
 

artF

Новичок
24
0
Так..
Опять кривожоплю.
Код:
var
$SkinArray: array 59 of String
end
s$SkinArray[287] = 'Army'
s$SkinArray[191] = 'ArmyGirl'
if $SkinArray[14@]!=''
    then
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ $SkinArray[14@]
    else
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ 14@
end

Условие не выполняется. Как получить значение ключа массива? Что не так делаю?
Нужно так, чтобы если приходящее число было в массиве(т.е ключ) то вывести значение этого ключа. Иначе, вывести сам ключ(т,е приходящее число)
 

Dark_Knight

Me, me and me.
Друг
4,067
2,081
Так..
Опять кривожоплю.
Код:
var
$SkinArray: array 59 of String
end
s$SkinArray[287] = 'Army'
s$SkinArray[191] = 'ArmyGirl'
if $SkinArray[14@]!=''
    then
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ $SkinArray[14@]
    else
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ 14@
end

Условие не выполняется. Как получить значение ключа массива? Что не так делаю?
Нужно так, чтобы если приходящее число было в массиве(т.е ключ) то вывести значение этого ключа. Иначе, вывести сам ключ(т,е приходящее число)

Глобальные переменные не работают в саммпе -_-
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Так..
Опять кривожоплю.
Код:
var
$SkinArray: array 59 of String
end
s$SkinArray[287] = 'Army'
s$SkinArray[191] = 'ArmyGirl'
if $SkinArray[14@]!=''
    then
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ $SkinArray[14@]
    else
        0AF8: samp add_message_to_chat " %s[%d](%.1f)(%d)" -1 6@ 0@ 5@ 14@
end

Условие не выполняется. Как получить значение ключа массива? Что не так делаю?
Нужно так, чтобы если приходящее число было в массиве(т.е ключ) то вывести значение этого ключа. Иначе, вывести сам ключ(т,е приходящее число)

Используй массивы из СФ.
Глобальные переменные лучше не использовать в сампе.