wmysterio, Спасибо большое за русик) Очень пригодился)
У меня вот какая то ерунда выходит. Вроде как должен скрипт по нажатию клавиши End запускаться и при прицеливании на определённого актёра, тот должен отдавать таксказать рандомное число всех своих сбережений. У меня не работает ничего. Есть два сообщения, для проверки того, на какой стадии не работает, не запускается ниодно x)
thread 'ROBBERY' 0A95: enable_thread_saving
:ROBBERY_40 wait 100 00E1: player 0 pressed_key 35 jf @ROBBERY_40
:ROBBERY_46 wait 10 Actor.StorePos($PLAYER_ACTOR, 2@, 3@, 4@) if and 08E5: get_actor_in_sphere 2@ 3@ 4@ radius 30.0 handle_as 5@ not Actor.Driving(5@) else_jump @ROBBERY_46 15@ = Marker.CreateAboveActor(5@) 03E5: show_text_box 'ROBBING'
:ROBBERY_177 0209: 20@ = random_int_in_ranges 500 25000 if 0457: player $PLAYER_CHAR aiming_at_actor 5@ else_jump @ROBBERY_177 074D: AS_actor 5@ turns_to_and_look_at_actor $PLAYER_ACTOR timelimit -2 05C4: AS_actor 5@ hands_up -1 ms Player.Money($PLAYER_CHAR) += 20@ 00BC: show_text_highpriority GXT 'TAKEIT' time 3000 flag 1
У меня вот какая то ерунда выходит. Вроде как должен скрипт по нажатию клавиши End запускаться и при прицеливании на определённого актёра, тот должен отдавать таксказать рандомное число всех своих сбережений. У меня не работает ничего. Есть два сообщения, для проверки того, на какой стадии не работает, не запускается ниодно x)
Эт потому, что ты пропустил проверку IF:
thread 'ROBBERY' 0A95: enable_thread_saving
:ROBBERY_40 wait 100 IF 00E1: player 0 pressed_key 35 jf @ROBBERY_40 ............
wmysterio, Жесть. Весь день убил на этот скрипт. И так пробовал, и сяк. Всё что то не то... Сейчас по идее должен бы вроде как заработать, но с ним игра не загружается. Совсем текст угробил. Ниразу так он у меня и не сработал. Даже странно. В стандартном моде, который я изменить пытался - всё работает. Заменил кнопку - работать перестало. Что это за фигня?
Вот мой ложащий игру скрипт:
0A95: enable_thread_saving wait 10
:ROBBERY_46 wait 10 Actor.StorePos($PLAYER_ACTOR, 2@, 3@, 4@) if and 08E5: get_actor_in_sphere 2@ 3@ 4@ radius 30.0 handle_as 5@ not Actor.Driving(5@) 0457: player $PLAYER_CHAR aiming_at_actor 5@ else_jump @ROBBERY_46 15@ = Marker.CreateAboveActor(5@) 03E5: show_text_box 'ROBBING'
:ROBBERY_177 wait 0 0209: 20@ = random_int_in_ranges 500 25000 074D: AS_actor 5@ turns_to_and_look_at_actor $PLAYER_ACTOR timelimit -2 05C4: AS_actor 5@ hands_up -1 ms If 00E1: player 0 pressed_key 84 else_jump @ROBBERY_177 Player.Money($PLAYER_CHAR) += 20@ 00BC: show_text_highpriority GXT 'TAKEIT' time 3000 flag 1
wmysterio, В общем такая фигня: Подойти к актёрам (желательно только в магазинах, кафе, короче только в интерьерах) и целиться в них. И когда прицел наводишь, он бабло гонит. Если делать проверки по всем кассирам, людям в униформе и крупье, то получится писец, а как сделать иначе я не представляю.
Ну это уже мои проблемы. Если подольше с ним посижу - найду решение, мне лишь бы рабочий скелет увидеть. А то в стандартном действительно много мусора... Я там запутался раз 5, что за что отвечает. Да и в игре он действительности не соответствует (маркеры красные над головами жертв не появляются)
Как это максимум 19? о_О А я видал и 90 и 104... или это уже другой какой то опкод? Я ведь невнимательный в доску...
Да-да-да-да-да, точно Память девичья у меня... думал и разницы то нет, смотрю, чего это вдруг не работает xDD
Quote (wmysterio)
Ща я напишу и скину скелет, как ты говорил ))
Заранее спасибо) Там ещё в чём проблема может быть - стандартный ("мусорный") скрипт работает и в магазинах, но "доить" можно всех, кроме тех, кто за прилавком. Они ну нивкакую, хоть тресни. Главное это исправь пожалуйста. Ибо с других много не насобираешь, и на улице тоже не надо. Не хочу гопотой быть
Заранее спасибо) Там ещё в чём проблема может быть - стандартный ("мусорный") скрипт работает и в магазинах, но "доить" можно всех, кроме тех, кто за прилавком. Они ну нивкакую, хоть тресни. Главное это исправь пожалуйста. Ибо с других много не насобираешь, и на улице тоже не надо. Не хочу гопотой быть
ну это я уже на 60% сделал действует ток в интерьерах, и на всех людей в нем.
ну это я уже на 60% сделал biggrin действует ток в интерьерах, и на всех людей в нем.
Воооот, то что нужно)) Выглядеть будет, как полноценное ограбление. А телохранители во всех казино одинаковые? Я просто потом сделаю, чтобы их нельзя было грабить. А то в "стандарте" я грабил и копов, и ФБР
Сообщение отредактировал Kadeirn - Среда, 11.05.2011, 22:30
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
// --- MAIN --- \\ 0000:
:THREAD thread 'THREAD' wait 0 const i = 0@ // номер инерьера AC = 1@ // актер, в который целится сж _ = (unknown) PA = $PLAYER_ACTOR PC = $PLAYER_CHAR R = 2@ // случайное число MIN = 1 MAX = 100 J = @THREAD_1 end
:THREAD_1 wait 0 09E8: _ i PA // записываем в переменную текущий интерьер if not i == 0 then 0AD2: _ AC PC // на кого наложен прицел if 056D: _ AC // существует ли актер then if AND 0457: _ PC AC // сж целится в актера 8118: _ AC // актер не умер then 0209: _ R MIN MAX // рандомное число 0109: _ PC R // прибавляем деньги jump J end else 01C2: _ AC // удалить сведения о актере end end jump J
А что это за номер интерьера, если не секрет? Их как различать?
каждый интерьер имеет свой номер. улица например всегда равна 0, дом сж - 3, а тот код записывает в переменную текущий номер. вот и я сделал что если номер интерьера равен 0, то скрипт не будет действовать
Дата: Четверг, 12.05.2011, 01:47 | Сообщение # 2614
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
Примерно правильно собрал?:
:THREAD_1 wait 0 09E8: $i = actor $PLAYER_ACTOR active_interior // записываем в переменную текущий интерьер if not $i == 0 then 0AD2: 1@ = player $PLAYER_CHAR targeted_actor // на кого наложен прицел if 056D: actor 1@ defined // существует ли актер then if AND 0457: player $PLAYER_CHAR aiming_at_actor 1@ // сж целится в актера 8118: not actor 1@ dead // актер не умер then 0209: 20@ = random_int_in_ranges 1500 25000 // рандомное число 0109: player $PLAYER_CHAR money += 20@ // прибавляем деньги jump @THREAD_1 end else 01C2: remove_references_to_actor 1@ // удалить сведения о актере end end jump @THREAD_1
------------------------------------------------------------------------------------------------------ Жестоко. Теперь пока держу прицел на чаре, деньги бесконечно прибавляются xD Попробую кнопку добавить, посмотрю что будет
Сообщение отредактировал Kadeirn - Четверг, 12.05.2011, 02:09
Дата: Четверг, 12.05.2011, 02:41 | Сообщение # 2615
Знающий скриптер
Группа: Проверенные
Сообщений: 189
Статус: Offline
Code
{$CLEO} 0000: while true 003D: if player.Defined(0) then if 0AD2: 1@ = player 0 target then 0209: 0@ = random_int 1500 25000 player.Money(0) += 0@ end end end
Grand Theft Auto III HD Development Team 0AA5: call 0x52D0B0 num_params 0 pop 0
52 53 43 05 01 00 00 00 10 20 00 C0 78 DA EC BC 0B 38 94 CD FF 3F 7E 2F 8B 75 5E 67 49 5A 87 24 B1 07 21 DD BB EC
Дата: Четверг, 12.05.2011, 15:27 | Сообщение # 2617
Ученик скриптинга
Группа: Проверенные
Сообщений: 888
Статус: Offline
RAS а тебе не вп*длу делать поток АВТОМАТИЧЕСКИЙ_+С ? пиши короче, а то замучаешься такое длинное писать... я так понял с скрипта что при нажатии одной кнопки что-то делается, потом при нажатии другой что-то еще до делывается... Верь в свою звезду Э. Че Гевара
Сообщение отредактировал [СТРЕЛОК] - Четверг, 12.05.2011, 15:30
Дата: Четверг, 12.05.2011, 15:35 | Сообщение # 2619
Ученик скриптинга
Группа: Проверенные
Сообщений: 888
Статус: Offline
активация :AAA_1 wait 0 if AND 00E1: player 0 pressed_key (клавища C) 00E1: player 0 pressed_key (клавиша 4) jf @AAA_1 та часть скрипта AAA_2 wait 0 if AND 00E1: player 0 pressed_key (клавища C) 00E1: player 0 pressed_key (клавиша 4) jf @AAA_2 jump @AAA_1
так
Добавлено (12.05.2011, 15:35) --------------------------------------------- итак получается при нажатии C4 то идёт скрипт, а если ты еще раз нажал C4 то всё сначала ( на проверку опять ли нажата клавиша C4
я имел ввиду что поток thread лучше бы уменьшить, к примеру thread 'AAA' и так будишь писать :AAA_1 :AAA_2 и т д, а то в таком большом названии можешь ошибиться
Дата: Четверг, 12.05.2011, 17:03 | Сообщение # 2623
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
wmysterio, Привет)
Подскажи пожалуйста, что с этим делать? Наставь на путь истинный. Получился у меня какойто франкенштейн. Но блин удобный я скажу. Читерный хд Как нажимаешь кнопку - получаешь деньги. Бесконечно, пока держишь... >_> С копами я уже намутил, но их почему то вместо 2 звёзд даётся 6 О.О Мне самое главное - нужно процесс каким то образом застопорить. Тобишь с одного персонажа получил деньги и всё. Как нибудь можно сделать, чтобы потом на него сколько не наводи, он никопейки не даст?
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
:THREAD_17 wait 0 09E8: $I = actor $PLAYER_ACTOR active_interior if not $I == 0 else_jump @THREAD_198 0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET if Actor.Defined(1@) else_jump @THREAD_198 if and 0457: player $PLAYER_CHAR aiming_at_actor 1@ 00E1: player 0 pressed_key 7 not Actor.Dead(1@) else_jump @THREAD_151 074D: AS_actor 1@ turns_to_and_look_at_actor $PLAYER_ACTOR timelimit -2 05C4: AS_actor 1@ hands_up -1 ms 00BC: show_text_highpriority GXT 'TAKEIT' time 3000 flag 1 0209: 20@ = random_int_in_ranges 1500 25000 Player.Money($PLAYER_CHAR) += 20@
Дата: Четверг, 12.05.2011, 17:22 | Сообщение # 2624
КОНСУЛЬТАНТ
Группа: Команда CG
Сообщений: 900
Статус: Offline
Quote (Kadeirn)
Подскажи пожалуйста, что с этим делать? Наставь на путь истинный. Получился у меня какойто франкенштейн. Но блин удобный я скажу. Читерный хд Как нажимаешь кнопку - получаешь деньги. Бесконечно, пока держишь... >_> С копами я уже намутил, но их почему то вместо 2 звёзд даётся 6 О.О Мне самое главное - нужно процесс каким то образом застопорить. Тобишь с одного персонажа получил деньги и всё. Как нибудь можно сделать, чтобы потом на него сколько не наводи, он никопейки не даст?
можно сделать, ток нужно подумать.
а 6 звезд дается постоянно, даж когда у тя нулевой розыск?
Дата: Четверг, 12.05.2011, 18:22 | Сообщение # 2627
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
Quote (wmysterio)
там цикл неправильно сделан. проверки как таковой нету
С копами то фиг с ними. Это ерунда. А вот процесс множественного получения денег с одного перса, вот это проблема. Я пол дня в универе над ней думал и опять результата нет. А можно какнибудь сделать так, чтобы после ограбления актёр оставался бы ограничен в действиях? Допустим на самом деле актёр есть, а игра бы считала, что его нет? о.О Тогда и скрипт перестал бы выполняться...
Добавлено (12.05.2011, 18:22) --------------------------------------------- Блин, как я не догадался то х) Ещё одна идея возникла. Но для реализации надо кое что узнать: У педов у каждого разный запас жизни? Или по стандарту?
Дата: Четверг, 12.05.2011, 19:59 | Сообщение # 2631
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
wmysterio, Вот. Моя жалкая попытка. Опять отключает мне игру >< Видимо опкод не тот, я так и не понял, какой нужный выбрать. Такая идея: Сделать проверку на броню. Типо если брони на актёре нет, то даёт деньги, а после ограбления, в самом конце, ограбленному даётся единица брони. Что я не так опять сделал?
Там в конце вместо == стоит =. Это сильно влияет? Я всегда считал, что == только для проверки, а = для присвоения...
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
:THREAD_17 wait 0 09E8: $I = actor $PLAYER_ACTOR active_interior if not $I == 0 else_jump @THREAD_198 0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET if and Actor.Defined(1@) 035F: actor 1@ armour == 1 else_jump @THREAD_198 if and 0457: player $PLAYER_CHAR aiming_at_actor 1@ 00E1: player 0 pressed_key 7 not Actor.Dead(1@) else_jump @THREAD_151 074D: AS_actor 1@ turns_to_and_look_at_actor $PLAYER_ACTOR timelimit -2 05C4: AS_actor 1@ hands_up -1 ms 00BC: show_text_highpriority GXT 'TAKEIT' time 3000 flag 1 0209: 20@ = random_int_in_ranges 1500 25000 Player.Money($PLAYER_CHAR) += 20@
Дата: Четверг, 12.05.2011, 20:16 | Сообщение # 2633
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
wmysterio, Что то игра упрямится >< Я этих wait 0 уже везде понапихал, строчки с бронёй исправил, а запускаться игра нивкакую не хочет.
Как по матану училка говорит: Светлые мысли иногда в твою голову залетают... по ошибке... А руки вот кривые. Взгляни плиз. Может поймёшь, в чём косяк...
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
Дата: Четверг, 12.05.2011, 20:17 | Сообщение # 2634
КОНСУЛЬТАНТ
Группа: Команда CG
Сообщений: 900
Статус: Offline
Kadeirn, Вот: забирает деньги 1 раз в 1 чела
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
// --- MAIN --- \\ 0000:
:THREAD thread 'THREAD' wait 0 const i = 0@ // номер инерьера AC = 1@ // актер, в который целится сж _ = (unknown) PA = $PLAYER_ACTOR PC = $PLAYER_CHAR R = 2@ // случайное число A = 3@ // armour ar1 = 0 ar2 = 1 MIN = 1500 MAX = 25000 J = @THREAD_1 end
:THREAD_1 wait 0 09E8: _ i PA // записываем в переменную текущий интерьер if not i == 0 then 0AD2: _ AC PC // на кого наложен прицел if 056D: _ AC // существует ли актер then 04DD: _ A AC if AND 0457: _ PC AC // сж целится в актера 8118: _ AC // актер не умер A == ar1 then 0209: _ R MIN MAX // рандомное число 0109: _ PC R // прибавляем деньги 035F: _ AC ar2 jump J end else 01C2: _ AC // удалить сведения о актере end end jump J
Дата: Четверг, 12.05.2011, 22:47 | Сообщение # 2637
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
Quote (wmysterio)
спасибо тебе за идею с броней *_* меня сразу осенило! =) добавил ток 2 опкода )))
Хоть чем то обливионский опыт пригодился)) Там всё сплошь и рядом на подобных махинациях строится. Ну я в основном только с магией и работал
А тебе такая идея для каких целей, если не секрет?)
Добавлено (12.05.2011, 22:47) --------------------------------------------- Да блин, чёртовы опкоды. Теперь уровни розыска сопротивляются. Скрипт заработал отлично, но как доходит до полиции, реакции никакой. Я уж три блока разных создал, всёравно не работает. Я гдето в проверке накосячил?
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
// --- MAIN --- \\ 0000:
:THREAD thread 'THREAD' wait 0 jump @THREAD_1
:THREAD_1 wait 0 09E8: 0@ = actor $PLAYER_ACTOR active_interior // записываем в переменную текущий интерьер if not 0@ == 0 then 0AD2: 1@ = player $PLAYER_CHAR targeted_actor // на кого наложен прицел end if 056D: actor 1@ defined // существует ли актер then 04DD: 3@ = actor 1@ armour end if AND 0457: player $PLAYER_CHAR aiming_at_actor 1@ // сж целится в актера 8118: not actor 1@ dead // актер не умер 3@ == 0 0AB0: key_pressed 82 then 0209: 2@ = random_int_in_ranges 1500 5000 // рандомное число 0109: player $PLAYER_CHAR money += 2@ // прибавляем деньги 035F: actor 1@ armour += 1 end If 010F: player $PLAYER_CHAR wanted_level == 0 jf @THREAD_2 010F: player $PLAYER_CHAR wanted_level +=2 01C2: remove_references_to_actor 1@ end jump @THREAD_1
:THREAD_2 wait 0 If 010F: player $PLAYER_CHAR wanted_level == 1 then 010F: player $PLAYER_CHAR wanted_level += 2 01C2: remove_references_to_actor 1@ // Like turning an actor into a random pedestrian // удалить сведения о актере end jump @THREAD_1
:THREAD_3 wait 0 If 010F: player $PLAYER_CHAR wanted_level > 2 then 01C2: remove_references_to_actor 1@ // Like turning an actor into a random pedestrian // удалить сведения о актере end jump @THREAD_1
Дата: Пятница, 13.05.2011, 00:14 | Сообщение # 2638
Знающий скриптер
Группа: Проверенные
Сообщений: 189
Статус: Offline
Изменение уровня брони не катит, лучше изменять maxHealth. 09E8, 056D, 0457, 8118, 01C2 в этом коде вообще не нужны. 0AD2 можно и нужно использовать в качестве проверки. Grand Theft Auto III HD Development Team 0AA5: call 0x52D0B0 num_params 0 pop 0
52 53 43 05 01 00 00 00 10 20 00 C0 78 DA EC BC 0B 38 94 CD FF 3F 7E 2F 8B 75 5E 67 49 5A 87 24 B1 07 21 DD BB EC
Дата: Пятница, 13.05.2011, 22:40 | Сообщение # 2639
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
Quote (DK22Pac)
09E8, 056D, 0457, 8118, 01C2 в этом коде вообще не нужны.
Почему не нужны то? Без 8118 к примеру вообще ерунда получится, а 09E8 необходим в конкретной моей ситуации, ибо ограбление происходит только в интерьерах А какую проверку можно забубенить с 0AD2?
Насчёт MaxHealth спасибо. Надо будет потестировать. Опять же значение беспалевное выбирать придётся. Это всё проблемы то чисто косметические. Единственное что напрягает - так это то, что никак не могу копов привязать в ограблению. И надо, чтобы не больше трёх звёзд было. А я не могу даже одной вызвать
Добавлено (13.05.2011, 22:40) --------------------------------------------- YES, I GET IT!!!!! XD
wmysterio, Наконецто работает добавление копов. Осталось лишь исправить один баг. После ограбления педы беспалевно так начинают жить своей жизнью, будто ничего не случилось. А продавцы даже из-за касс выходят. Махинации с анимацией решат этот вопрос?
Дата: Суббота, 14.05.2011, 01:25 | Сообщение # 2641
Что-то знает.....:)
Группа: Проверенные
Сообщений: 75
Статус: Offline
wmysterio, Я кажется опять намусорил в скрипте. Хотел поменять выдачу денег на две пачки рядом с актёром, чтобы реалистичней выглядело. Выдаётся почему то только одна. И абсолютно все "реплики" почему то тоже не выводятся нивкакую. Опять повозился, повозился и не знаю чего делать. Мне всё кажется правильным, но не в первый раз же. Посмотри пожалуйста...
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
:THREAD_24 wait 0 09E8: 0@ = actor $PLAYER_ACTOR active_interior if not 0@ == 0 else_jump @THREAD_62 0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
:THREAD_62 wait 0 if Actor.Defined(1@) else_jump @THREAD_86 04DD: 3@ = actor 1@ armour 01C0: 8@ = player $PLAYER_CHAR wanted_level
:THREAD_86 wait 0 if and 0457: player $PLAYER_CHAR aiming_at_actor 1@ not Actor.Dead(1@) 3@ == 0 0AB0: key_pressed 82 else_jump @THREAD_189 0209: 2@ = random_int_in_ranges 1200 3500 Actor.StorePos(1@, 12@, 13@, 14@) 074D: AS_actor 1@ turns_to_and_look_at_actor $PLAYER_ACTOR timelimit -2 05C4: AS_actor 1@ hands_up -1 ms 02E1: 20@ = create_cash_pickup 2@ at 12@ 13@ 14@ permanence_flag 1 12@ += 1 02E1: 21@ = create_cash_pickup 2@ at 12@ 13@ 14@ permanence_flag 1 0209: 4@ = random_int_in_ranges 1 4 If 4@ = 1 then 00BC: show_text_highpriority GXT 'ROB1' time 3000 flag 1 end If 4@ = 2 then 00BC: show_text_highpriority GXT 'ROB2' time 3000 flag 1 end If 4@ = 3 then 00BC: show_text_highpriority GXT 'ROB3' time 3000 flag 1 end If 4@ = 4 then 00BC: show_text_highpriority GXT 'ROB4' time 3000 flag 1 end Actor.Armour(1@) = 10 If or 8@ == 0 8@ == 1 then 8@ += 1 010D: set_player $PLAYER_CHAR wanted_level_to 8@ end
:THREAD_180 wait 0 If 3@ == 10 then jf @THREAD_189 end 0209: 5@ = random_int_in_ranges 1 4 If 5@ = 1 then 00BC: show_text_highpriority GXT 'DEF1' time 3000 flag 1 end If 5@ = 2 then 00BC: show_text_highpriority GXT 'DEF2' time 3000 flag 1 end If 5@ = 3 then 00BC: show_text_highpriority GXT 'DEF3' time 3000 flag 1 end If 5@ = 4 then 00BC: show_text_highpriority GXT 'DEF4' time 3000 flag 1 end
Баг с "вставанием" жертв пока не пофиксен. Не знаю, что с ними делать. Было бы можно как нибудь заставить их присесть, сложить руки за головой и так не двигаться. Причём всех в интерьере сразу. Хотя бы когда выстрелы услышать. А то секунд 10 проходит и встают. Смелости блин набрались...
02E1: 20@ = create_cash_pickup 2@ at 12@ 13@ 14@ permanence_flag 1 12@ += 1.0 // этот параметр неправильно был написал, я добавил .0 так как координати считаются дробными числами 02E1: 21@ = create_cash_pickup 2@ at 12@ 13@ 14@ permanence_flag 1