Что это такое?Actor.PutAt($Player_Actor, - - -)
Что это такое?Actor.PutAt($Player_Actor, - - -)
тп актера на те иные координаты правельно?Что это такое?
Лол, координаты я потом поставлю. там нет сейчас координат, я тестил с координатами, но крашило там где проверка на ган)Табуляцию научись использовать, а то так и будешь писать не правильно.
Вместо - - - нужно написать значение типа float и никак иначе.
ну ты сам ответил на свой вопрос, в логе чата сампа скопируй эту строку и вставь со всеми символами
может там "Материалов: {FFFFFF}10000/10000"
Крашило, как вариант:Что не так? На проверке, держит ли персонаж оружие крашит.
CLEO:if 0AB0: 80 then while 0AB0: 80 wait 0 end Actor.StorePos($Player_Actor, 0@, 1@, 2@) Actor.PutAt($Player_Actor, - - -) wait 500 Actor.PutAt($Player_Actor, - - -) if 02D8: Actor $PLAYER_ACTOR current_weapon == 24 then Actor.PutAt($Player_Actor, - - -) end wait 500 Actor.PutAt($Player_Actor, 0@, 1@, 2@)
{$CLEO}
0000:
while true // :1
wait 0
Actor.StorePos($Player_Actor, 0@, 1@, 2@)
if 0AB0: 49
then
while 0AB0: 49
wait 0
Actor.PutAt($Player_Actor, 0.0 0.0 20.0)
wait 500
Actor.PutAt($Player_Actor, 500.0 500.0 20.0)
if 02D8: Actor $PLAYER_ACTOR current_weapon == 24
then
Actor.PutAt($Player_Actor, 1000.0 1000.0 1000.0)
end
Actor.PutAt($Player_Actor, 0@, 1@, 2@)
wait 500
end
end
end // jump @1
// можно заменить в том месте.
1) прям как только я увидел "через фотошоп", я сразу понял, что ты совсем еще нуб :(![]()
Британские ученный иследовали, что цвет строки - {00db00} (через фотошоп). Почему через фотошоп ?
Ну, бля буду, в чатлоге именно строку с материалами не отображало ее цвет. По-этому я сразу не взял оттуда.
Сокращу проверку до if 0C18: 5@ = strstr string1 0@ string2 "{00db00}10000/10000"
Надеюсь сработает.
Крашило, как вариант:
1) Ты проебал один end, у тебя 2 then и один цикл while = 3end
2) Даже, если бы стоял end, то после первой итерации скрипта, скрипт падает вниз, т.е. не было больше никаких опкодов и действий и все пиздец - краш.
3) Неправильная структура, скрипт идет одним потоком и постепенной проверкой, т.е. все end должны быть в конце, а у тебя как получилось, что ты после while закрывал цикл и проверка на оружие актера шла совсем, как другая, а если так и нужно было, то смысл скрипта ? Тебя бы тпшило на записанные кординаты, но у тебя кординаты записывались, только, если бы ты зажимал клавишу 80. Короче, опиши, как ты хочешь, чтоб работал скрипт. А пока он работает в таком состоянии.
4) Вообще для многоуровневых конструкций, нужна практика. Наверное этот скрипт и был твоей практикой, но как делал я, я сначала писал интересующий меня код, а потом, если он работал на низкоуровневых конструкциях(лабелы, джампы), то я переводил его на высоуровневые.(циклы). Сейчас стараюсь почти всегда писать высокоуровневый код, но когда не получается, то использую метки и джампы, так что в этом нет ничего такого, главное, чтоб код работал, наверное.CLEO:{$CLEO} 0000: while true // :1 wait 0 Actor.StorePos($Player_Actor, 0@, 1@, 2@) if 0AB0: 49 then while 0AB0: 49 wait 0 Actor.PutAt($Player_Actor, 0.0 0.0 20.0) wait 500 Actor.PutAt($Player_Actor, 500.0 500.0 20.0) if 02D8: Actor $PLAYER_ACTOR current_weapon == 24 then Actor.PutAt($Player_Actor, 1000.0 1000.0 1000.0) end Actor.PutAt($Player_Actor, 0@, 1@, 2@) wait 500 end end end // jump @1 // можно заменить в том месте.
Попробовал твой скрипт, но он в любом случае тпшит, есть оружие или нет и тпшит только на 1 координаты. Мне нужен скрипт, который сохраняет твои координаты (Actor.StorePos($Player_Actor, 0@, 1@, 2@)), потом телепортируется на 1 точку, потом 2-ую и ждёт появления в руках дигла (24 ID), после того как получит телепортируется на 3-ю точку, а после уже туда, где находился (Actor.PutAt($Player_Actor, 0@, 1@, 2@)).4) Вообще для многоуровневых конструкций, нужна практика. Наверное этот скрипт и был твоей практикой, но как делал я, я сначала писал интересующий меня код, а потом, если он работал на низкоуровневых конструкциях(лабелы, джампы), то я переводил его на высоуровневые.(циклы). Сейчас стараюсь почти всегда писать высокоуровневый код, но когда не получается, то использую метки и джампы, так что в этом нет ничего такого, главное, чтоб код работал, наверное.
Попробовал твой скрипт, но он в любом случае тпшит, есть оружие или нет и тпшит только на 1 координаты. Мне нужен скрипт, который сохраняет твои координаты (Actor.StorePos($Player_Actor, 0@, 1@, 2@)), потом телепортируется на 1 точку, потом 2-ую и ждёт появления в руках дигла (24 ID), после того как получит телепортируется на 3-ю точку, а после уже туда, где находился (Actor.PutAt($Player_Actor, 0@, 1@, 2@)).
{$CLEO}
0000:
wait 2000
while true // :1
wait 0
if 0ADC: test_cheat "go"
jf continue
Actor.StorePos($Player_Actor, 0@, 1@, 2@
Actor.PutAt($Player_Actor 1.0 1.0 1.0)
wait 500
Actor.PutAt($Player_Actor 2.0 2.0 2.0)
repeat
wait 0
until 02D8: Actor $PLAYER_ACTOR current_weapon == 24
Actor.PutAt($Player_Actor 3.0 3.0 3.0)
wait 500
Actor.PutAt($Player_Actor 0@ 1@ 2@)
end
Я думал, что этот способ подходит, так как ищет нужный мне текст в чате, а оказывается, что он не успевает и нужно делать через хук. Изначально через хук не делал, так как много строк.1) прям как только я увидел "через фотошоп", я сразу понял, что ты совсем еще нуб :(
видишь время какого цвета? у времени всегда основной текст, тот самый цвет, который в опкоде добавления сообщения в чат как параметр пишешь (-1 к примеру), тут не используется изменение цвета через {FFFFFF}, чат лог показывает полностью строку, но тут его нет, значит все сообщение основного цвета
2) я никогда не понимал людей, использующих "0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 21@ prefix_color_to 22@" для того, чтобы скрипт реагировал на сообщения, ЭТО НЕ НАДЁЖНО, в твоём случае самп так быстро добавляет сообщения в чат, что твой клео скрипт даже не успевает получить текст о материалах, ведь его успевает сдвинуть сообщение о состоянии склада, НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ОПКОД, он не для этого сделан, для того, чтобы скрипт всегда обрабатывал каждое сообщение, нужно ставить хук на получение сообщений, тогда скрипт будет всегда надёжным и никогда не пропустит сообщение
пиздец, естьЯ думал, что этот способ подходит, так как ищет нужный мне текст в чате, а оказывается, что он не успевает и нужно делать через хук. Изначально через хук не делал, так как много строк.
есть разница между
этим - if 0C18: 5@ = strstr string1 0@ string2 "10000/10000"
и этим - if 0C18: 5@ = strstr string1 0@ string2 "{FFFFFF}10000/10000" ?
{$CLEO}
0000:
wait 2000
0AC8: 4@ = allocate_memory_size 256
while true // :1
wait 0
if 0ADC: test_cheat "go"
jf continue
Actor.StorePos($Player_Actor, 0@, 1@, 2@
Actor.PutAt($Player_Actor 1.0 1.0 1.0)
wait 500
Actor.PutAt($Player_Actor 2.0 2.0 2.0)
repeat
wait 0
until 02D8: Actor $PLAYER_ACTOR current_weapon == 24
Actor.PutAt($Player_Actor 3.0 3.0 3.0)
wait 500
while true
0B75: samp get_chat_string 99 text_to 4@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 0 = strstr string1 4@ string2 "asd"
then
Actor.PutAt($Player_Actor, 123.0 321.0 111.0)
end
Actor.PutAt($Player_Actor 0@ 1@ 2@)
end
Я не уверен, но попробуй.0B75: samp get_chat_string 99 text_to 4@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 0 = strstr string1 4@ string2 "asd"
alloc 4@ 64
0B75: samp get_chat_string 99 text_to 4@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 5@ = strstr string1 4@ string2 "asd"
Как и ожидалось, не сработало, так ещё и крашнуло.Я не уверен, но попробуй.
CLEO:alloc 4@ 64 0B75: samp get_chat_string 99 text_to 4@ prefix_to 0 color_to 0 prefix_color_to 0 if 0C18: 5@ = strstr string1 4@ string2 "asd"
Вот самый простой и известный мне способ поиска текста в строке. Все работает, я проверил. Крашило потому что ты мне дал опкод в котором запись некоторых параметров происходила в "0". Я почему-то по глупости подумал, что так можно делать. Дальше думай сам как его применить.Как и ожидалось, не сработало, так ещё и крашнуло.
{$CLEO}
0000:
repeat
wait 500
until 0afa:
:Find_Text
alloc 0@ 64
while true
wait 0
0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 3@
if 0C18: 4@ = strstr string1 0@ string2 "Privet"
then
print "Text Find" 5000
end
end
О, сработало, но при телепорте на предпоследнюю точку персонаж фризиться. Сделал вот так:Вот самый простой и известный мне способ поиска текста в строке. Все работает, я проверил. Крашило потому что ты мне дал опкод в котором запись некоторых параметров происходила в "0". Я почему-то по глупости подумал, что так можно делать. Дальше думай сам как его применить.
CLEO:{$CLEO} 0000: repeat wait 500 until 0afa: :Find_Text alloc 0@ 64 while true wait 0 0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 3@ if 0C18: 4@ = strstr string1 0@ string2 "Privet" then print "Text Find" 5000 end end
Actor.PutAt($Player_Actor, 1989.85 -1162.53 20.84)
repeat
wait 700
until 0afa:
alloc 4@ 64
while true
wait 0
0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
if 0C18: 8@ = strstr string1 4@ string2 "{FFFFFF}asd"
then
Actor.PutAt($Player_Actor, 1987.35 -1168.53 20.46)
end
wait 0
end
repeat