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

MelomanCool

Новичок
Проверенный
65
42
неплохо выходило с автобусом, если удавалось попасть в пинг и по линии движения
Попробуй получить Z-угол игрока и развернуть свою машину соответствующим образом.
Да, у тебя задержка довольно большая между телепортами. Попробуй уменьшить до 200. И расстояние оффсета большевато до игрока, мне кажется. Зачем три метра-то? Тоже уменьшай.
Еще можешь на синхронизации сделать, тогда задержка будет еще меньше.

EDIT:
А вообще, подниматься, чтобы захватить игрока, не нужно. Достаточно, чтобы он просто на крыше стоял.
 

MelomanCool

Новичок
Проверенный
65
42
Я уже подкорректировал высоту, я понял насколько она была ниже нужной.
Я накидал дополнительных варпов, но мало что изменилось. Я стал чаще варпаться, но эффект не поменялся.
А через синхру - как?
А с углом что? И ты можешь получать позицию игрока прямо перед тем местом, где телепортируешься к нему.
 

MelomanCool

Новичок
Проверенный
65
42
А каким образом действует данный опкод?
И кстати. Почему игра крашит, при телепорте прямо в скин?
Ну, то-есть вот если я ставлю -0.2, то оказываюсь прямо в скине, можно сказать в центре, но игра вылетает через несколько секунд.
Это баг игры, или опять что-то напортачил?
Справку Санни Билдера почитай, раздел "Циклы".
 

93Region

Известный
3
0
при вводе команды /giv1 id даёт 1й ранг игроку giverank %d 1 , но чтобы так же сделать для 2,3,4,5,6 мне пришлось сделать ещё 5 отдельных скриптов, а как сделать так чтобы все эти 6 отдельных скриптов замутить в один скрипт? помимо команды give1 ввести ещё 6 схожих в одном скрипте, но для каждого будет по номеру соответствующий ранг?

{$CLEO .cs}
thread 'giv1'
0B34: samp register_client_command "giv1" to_label @Id
while true
wait 0
if 30@ == 1
then
0af9: "/giverank %d 1" 1@
wait 1000
30@ = 0
end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
then
30@ = 1
end
0B43: samp cmd_ret
 

DarkExorcist

Новичок
77
3
при вводе команды /giv1 id даёт 1й ранг игроку giverank %d 1 , но чтобы так же сделать для 2,3,4,5,6 мне пришлось сделать ещё 5 отдельных скриптов, а как сделать так чтобы все эти 6 отдельных скриптов замутить в один скрипт? помимо команды give1 ввести ещё 6 схожих в одном скрипте, но для каждого будет по номеру соответствующий ранг?

{$CLEO .cs}
thread 'giv1'
0B34: samp register_client_command "giv1" to_label @Id
while true
wait 0
if 30@ == 1
then
0af9: "/giverank %d 1" 1@
wait 1000
30@ = 0
end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
then
30@ = 1
end
0B43: samp cmd_ret
Выдавать ранг можно и в теле команды, так даже будет проще, чем в цикле. Просто вместо 30@ = 1 ставить то, что нужно. Далее, если команды типа giv1...10 обязательно должны выглядеть именно так, то да, попросту создай ещё несколько команд. Но можно команду переписать под /giv [rank] [id], тогда не придется создавать несколько команд
 
  • Нравится
Реакции: 93Region

01EG

Известный
Проверенный
629
354
при вводе команды /giv1 id даёт 1й ранг игроку giverank %d 1 , но чтобы так же сделать для 2,3,4,5,6 мне пришлось сделать ещё 5 отдельных скриптов, а как сделать так чтобы все эти 6 отдельных скриптов замутить в один скрипт? помимо команды give1 ввести ещё 6 схожих в одном скрипте, но для каждого будет по номеру соответствующий ранг?

{$CLEO .cs}
thread 'giv1'
0B34: samp register_client_command "giv1" to_label @Id
while true
wait 0
if 30@ == 1
then
0af9: "/giverank %d 1" 1@
wait 1000
30@ = 0
end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
then
30@ = 1
end
0B43: samp cmd_ret
на С-РП есть команда /giverank id rank , ты хочешь ее сократить и писать только /giv id rank ?
 

DarkExorcist

Новичок
77
3
Есть ли функция, которая могла бы перебирать игроков в зоне стрима, не прибегая к сампфунксу? Помню что был на кары, мб и на актеров есть.
Просто хочется избежать цикла на 1000 интераций, где надо будет проверять каждого игрока на подключенность, потом на нахождение в зоне стрима и так далее
 

hnnssy

Известный
Друг
2,684
2,762
при вводе команды /giv1 id даёт 1й ранг игроку giverank %d 1 , но чтобы так же сделать для 2,3,4,5,6 мне пришлось сделать ещё 5 отдельных скриптов, а как сделать так чтобы все эти 6 отдельных скриптов замутить в один скрипт? помимо команды give1 ввести ещё 6 схожих в одном скрипте, но для каждого будет по номеру соответствующий ранг?

{$CLEO .cs}
thread 'giv1'
0B34: samp register_client_command "giv1" to_label @Id
while true
wait 0
if 30@ == 1
then
0af9: "/giverank %d 1" 1@
wait 1000
30@ = 0
end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
then
30@ = 1
end
0B43: samp cmd_ret
CLEO:
{$CLEO .cs}
thread 'giv'
0B34: samp register_client_command "giv" to_label @Id
while true
wait 0
end
:Id
0B35: samp 0@ = get_last_command_params
0af8: "/giverank %s" 0@
0B43: samp cmd_ret
самый изи вариант для тебя
 
  • Нравится
Реакции: 93Region

MelomanCool

Новичок
Проверенный
65
42
Есть опкод проверяющий что игрок сел в машину? Не находится, не садится, а сел.
А все-таки, есть кое-какой опкод.
CLEO:
080E: get_actor $PLAYER_ACTOR ped_event_to 1@
Событие 54.

Взял из справки Санни Билдера, статья "События актеров".
 
  • Нравится
Реакции: ShadowBroker

Dark_Knight

Me, me and me.
Друг
4,078
2,095
Есть ли функция, которая могла бы перебирать игроков в зоне стрима, не прибегая к сампфунксу? Помню что был на кары, мб и на актеров есть.
Просто хочется избежать цикла на 1000 интераций, где надо будет проверять каждого игрока на подключенность, потом на нахождение в зоне стрима и так далее
Минус -4 байта от точки старта и будет тебе актеры.
 

Kalybr50

Известный
3
0
051A: actor 1@ damaged_by_actor $PLAYER_ACTOR
Как сделать проверку что урон был получен от любого другого игрока???
Если оставить так: 051A: actor 1@ damaged_by_actor - выводит ошибку!
 

BlackKnigga

Известный
BH Team
922
446
051A: actor 1@ damaged_by_actor $PLAYER_ACTOR
Как сделать проверку что урон был получен от любого другого игрока???
Если оставить так: 051A: actor 1@ damaged_by_actor - выводит ошибку!
Сравнивай его хп в цикле, уменьшилось - нанесли дамаг.
 

Kalybr50

Известный
3
0
Сравнивай его хп в цикле, уменьшилось - нанесли дамаг.
Впринцепе сделать не тяжело, но проверки оппкодом нету? А то упаду откуда-то, получу урон и сработает код, а это мне не нужно!
Мне нужна проверка на урон полученный другим игроком.
 
Последнее редактирование: