romanzi Опубликовано 30 июля, 2011 Жалоба Поделиться Опубликовано 30 июля, 2011 (изменено) Скрипт для ВС.В чём я допустил ошибку? create_thread @Pick :Pick wait 1000 84A6: $Money = create_asset_money_pickup_at 197.743, -483.123,10.070 money 1000,1000 end_threadТоже самое,если без create_thread:032B: $weap = create_weapon_pickup #minigun 15 ammo 9999999 at -103.596,-953,691, 9.463Пишет.что параметров должно быть 6.... Изменено 30 июля, 2011 пользователем romanzi Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 30 июля, 2011 Жалоба Поделиться Опубликовано 30 июля, 2011 (изменено) убери все знаки препинания - должно помочь (видишь в опкоде их нет)04A6: $616 = create_asset_money_pickup_at 93.3 -1472.14 $572 money $617 $617 обрати внимание на 8 в номере своего опкода (она означает отрицательную частицу not)поэтому ставим 0 вместо 8-------------------------------------------------------------------------------------------------------------032B: $weap = create_weapon_pickup #minigun 15 ammo 9999999 at -103.596,-953,691, 9.463тоже самое убери все знаки препинания !!! в координатах Изменено 30 июля, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
romanzi Опубликовано 30 июля, 2011 Автор Жалоба Поделиться Опубликовано 30 июля, 2011 Всё, работает! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
romanzi Опубликовано 31 июля, 2011 Автор Жалоба Поделиться Опубликовано 31 июля, 2011 (изменено) Новая проблема создаю машину - а её нет на координатах. Создаю в Mission 0 (в самом низу) create_thread @INITIAL_30645 :INITIAL_30645 wait 0 014B: $CAR = init_parked_car_generator #ADMIRAL 8 8 0 alarm 50 door_lock 0 0 40000 at -122.54 -884.236 9.468 angle 180.0 014C: set_parked_car_generator $CAR cars_to_generate_to 101 end_threadЗ.Ы. Если знаете хороший сайт с форумом по скриптингу - дайте,что бы Вам мозги не пачкать =) Изменено 31 июля, 2011 пользователем romanzi Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 31 июля, 2011 Жалоба Поделиться Опубликовано 31 июля, 2011 (изменено) Я бы сказал что модель сначала нужно загрузить:INITIAL_xxx wait0 Model.Load(#ADMIRAL) 038B: load_requested_models if Model.Avaliable(#ADMIRAL) else_jump @INITIAL_xxxкак ты создаешь поток ?create_thread @INITIAL_30645 - create_thread 'INITIAL' Изменено 31 июля, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
igi_wlad Опубликовано 31 июля, 2011 Жалоба Поделиться Опубликовано 31 июля, 2011 А что, в Санни Билдере нет справки?!Ну и форум, соответственно http://sannybuilder.com/forums/ Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 31 июля, 2011 Жалоба Поделиться Опубликовано 31 июля, 2011 (изменено) Вот смотрите, этим нехитрым скриптом хотел заставить камеру двигаться по осям, но ничего толкового так и из этого не вышло - помогите опытные скриптеры, довести его до ума create_thread 'ENJOY' :ENJOY_50 wait 0 if 05EE: key_pressed 111 else_jump @ENJOY_50 Player.CanMove($PLAYER_CHAR) = False 04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0 1.0 0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_60 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 102 else_jump @ENJOY_70 5@ += 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_70 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 100 else_jump @ENJOY_80 5@ -= 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_80 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 104 else_jump @ENJOY_90 6@ += 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_90 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 98 else_jump @ENJOY_100 6@ -= 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_100 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 107 else_jump @ENJOY_110 7@ += 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_110 wait 0 if 85EE: not key_pressed 111 else_jump @ENJOY_120 if 05EE: key_pressed 109 else_jump @ENJOY_60 7@ -= 5.0 Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0) :ENJOY_120 wait 0 if 05EE: key_pressed 111 else_jump @ENJOY_60 Camera.Restore_WithJumpCut Player.CanMove($PLAYER_CHAR) = True jump @ENJOY_50 Изменено 31 июля, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Shaggy Опубликовано 31 июля, 2011 Жалоба Поделиться Опубликовано 31 июля, 2011 Вот смотрите, этим нехитрым скриптом хотел заставить камеру двигаться по осям, но ничего толкового так и из этого не вышло - помогите опытные скриптеры, довести его до ума linenums:0'>create_thread 'ENJOY':ENJOY_50wait 0if 05EE: key_pressed 111else_jump @ENJOY_50Player.CanMove($PLAYER_CHAR) = False 04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0 1.0 0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_60wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 102else_jump @ENJOY_705@ += 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_70wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 100else_jump @ENJOY_805@ -= 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_80wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 104else_jump @ENJOY_906@ += 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_90wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 98else_jump @ENJOY_1006@ -= 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_100wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 107else_jump @ENJOY_1107@ += 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_110wait 0if 85EE: not key_pressed 111else_jump @ENJOY_120if05EE: key_pressed 109else_jump @ENJOY_607@ -= 5.0Camera.SetPosition(5@, 6@, 7@,0.0,0.0,0.0):ENJOY_120wait 0if05EE: key_pressed 111else_jump @ENJOY_60Camera.Restore_WithJumpCut Player.CanMove($PLAYER_CHAR) = Truejump @ENJOY_50Камера должна куда-либо указывать, а именно: Camera.On.Ped , Camera.On.Vehicle , Camera.On.Point , etc. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 Вот в чём проблема - у меня не работают скрипты в собственных потоках и label"ах!При написании уже в существующих - работают - в своих - нет!Может,я что-то не так делаю? Ищу в --MAIN-- упоминания об create_thread - вношу свой (например create_thread @Pick) Потом ищу --Mission 0 -- и над ним (т.е. в конце Main) пишу - :Pick thread 'Pick' wait 1000 ---Часть скрипта---(ну там...wait, model.load) :Pick_1 ---Скрипт--- (например пикап) end_thread Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 (изменено) создай поток перед началом скрипта thread 'Pick' а уже потом :Pick (сделай метку з номером) - Pick_1... etc Изменено 1 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 Не работает =( thread 'SYT' :SYT wait 100 Model.Load(#KATANA) 038B: load_requested_models :SYT_21 wait 100 if Model.Available(#KATANA) else_jump @SYT_21 $WEAPON1 = Pickup.Create(#KATANA, 15, 1499.546, -12936.03, 151.413) Model.Destroy(#KATANA) end_thread Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 (изменено) Не работает =( thread 'SYT' :SYT wait 100 Model.Load(#KATANA) 038B: load_requested_models :SYT_21 wait 100 if Model.Available(#KATANA) else_jump @SYT_21 $WEAPON1 = Pickup.Create(#KATANA, 15, 1499.546, -12936.03, 151.413) Model.Destroy(#KATANA) end_threadсейчас разберусь Изменено 1 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 Пишет "Нету метки Syt" Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 (изменено) разобрался-----------------------------------------------все должно работать, примерhttp://www.imagebar.net/out.php/i98106_1.pnghttp://www.imagebar.net/out.php/i98107_2.pngрезультат http://www.imagebar.net/out.php/i98108_rezult.pngздесь нет знаков препинания в координатах, нет Model.Destroy и end_threadЯ просто в майне не пишу скрипты, а делаю Клео скрипты Изменено 1 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
mad-dog666 Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 А по расстановке моделей на карте мог бы написать? Цитата http://102.imagebam.com/download/nMHDqh7U3ZbgfwsP2jusmg/27271/272704289/2007a.4766234.jpg Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 1 августа, 2011 Жалоба Поделиться Опубликовано 1 августа, 2011 (изменено) А что именно тебя интересует, транспорт или объекты ? Изменено 2 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 (изменено) СПС!!! Всё работает,но у меня появился вопрос - если я поставлю в конце Main'а код - то игра вылетает на "Кафе Бистро" либо на "Офис Кена" (при новой игре),а если в середину Main'a то - всё работает.----------------------- Почему то когда я меняю твои координаты - игра вылетает! :KILLA thread 'KILLA' wait 0 Model.Load(#KATANA) 038B: load_requested_models :KILLA_21 wait 0 if Model.Available(#KATANA) else_jump @KILLA_21 Pickup.Create($WEAP,#KATANA, 15, 3199.868 -6897.697 154.369) wait 1000 Model.Destroy(#KATANA) Изменено 2 августа, 2011 пользователем Ужастикс Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Yur_95 Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 Mode_WARRIOR, когда ты не пишешь end_thread, скрипт продолжает обрабатыватся дальше. В твоем примере после спавна катаны произойдет все, что было после метки :HOT. Я к примеру когда создаю поток, то всегда пишу сначала название, потом этот самый end_thread, потом между ними вэйт и уже после вэйта сам код. Так лучше всего. А Model.Destroy тоже нужен. Я сам его не пишу иногда, но в дебаг скрипте, если мне нужно срочно проверить, сработает или нет. Не просто так же этот опкод существует, он выгружает из памяти модель, что бы на слабых компьютерах не лагало так сильно. Это ладно, одна катана. А если у тебя скрипт выбора автомобилей, да еще накачал моделей хайпольных? Сколько их там в вайсе, 100 машин? Вот загрузи в память все модели, и поиграй. Еще если я не ошибаюсь при попытке загрузить загруженную модель случится крэш.П.С. У тебя там что-то не так. СРАЗУ после попытки загрузить модель (она все еще грузится, буквально десятки милисекунд) ты проверяешть, что если она не загружена (тоесть да) ты ее ОПЯТЬ ГРУЗИШЬ. Ужастикс, лучше используй чистый мэйн, его можно найти в папке с санни билдером "stripped.txt", в нем нет миссий, как бы минимальная рабочая единица. Еще ты заменил имя глобальной переменной, $weap уже возможно (да точно) используется в скм, по этому и вылетает. В середине нормально, т.к. эту переменную еще не использовали. Это приведет к вылету когда в оригинальном скрипте попробуют использовать эту переменную, а она уже занята катаной. :KILLA wait 0 Model.Load(#KATANA) // не вижу смысла в 038B: load_requested_models, у меня всегда без него работает :KILLA_1 // Зачем добавлять имя _21 или _10? Сложно читать такой код. Лучше по-порядку wait 100 //Небольшая задержка, чтоб проверять всего лишь десять раз в секунду, а не как получится. if Model.Available(#KATANA) Jf @KILLA_1 // Jf короче и работает Pickup.Create(1@,#KATANA, 15, 3199.868, -6897.697, 154.369) wait 1000 Model.Destroy(#KATANA) end_thread // ОБЯЗАТЕЛЬНО завершаю поток^Вон то должно работать 100% И еще, мне вдруг показалось, что вы все время закрываете исходник и декомпилируете свой код заного, из-за этого и метки у вас глупо названы, и прочая подобная ерунда... Исходник в текст срохраняете и все дела, а потом скомпилить можно когда угодно. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 (изменено) Я писал скрипт на скорую руку и не выгрузка одной маленькой модели не страшна, тем более если присмотреться то некоторые потоки в майне так и не заканчиваются.Проверка если загрузилась модель верна, то есть я так учился - если не загрузилась, загржаем ее до тех пор пока не загрузится - и проверка проходит в 0 мс.У меня иногда лаги при попытке вигрузить и загрузить модель снова возникают (циклический скрипт)038B: load_requested_models (нужен опкод) Изменено 2 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 (изменено) СПС!!! Всё работает,но у меня появился вопрос - если я поставлю в конце Main'а код - то игра вылетает на "Кафе Бистро" либо на "Офис Кена" (при новой игре),а если в середину Main'a то - всё работает.----------------------- Почему то когда я меняю твои координаты - игра вылетает! :KILLA thread 'KILLA' wait 0 Model.Load(#KATANA) 038B: load_requested_models :KILLA_21 wait 0 if Model.Available(#KATANA) else_jump @KILLA_21 Pickup.Create($WEAP,#KATANA, 15, 3199.868 -6897.697 154.369) wait 1000 Model.Destroy(#KATANA)Ты же не в интро и миссиях его ставишь-------------------------------------------------------------------------------------Кто знает что делает gosub @label ? - у меня есть предположение Изменено 2 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Yur_95 Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 А по расстановке моделей на карте мог бы написать?:objectSpawn wait 100 model.Load(#farm_enteracearch) :objectSpawn_2 wait 100 if model.Available(#farm_enteracearch) jf @objectSpawn_2 wait 100 // Не думаю, что этот вэйт здесь нужен. Но он не мешает) Лучше уж с ним, чем без него вылетит. object.Create(1@,#farm_enteracearch,-1571.3452 -214.5276 26.4977) end_threadТак же, как и все остальное. (модель только у меня есть, у тебя ее НЕТ и загрузить ее ты не сможешь, замени имя на другое)П.С. Когда тестировал заметил что-то странное... Модель появилась, но стукнув ее машиной она провалилась под землю (обычная статическая модель...)П.П.С. Mode_WARRIOR, мультипостим с тобой ) У тебя сообщения вобще один за другим, лучше эдит жми. И не цитируй пожалуйста собщение целиком, трудно читать (это многих касается, пожалуйста, не цитируйте сообщения целиком без особой нужды)П.П.П.С. Засек время, за которое я запускаю вайс (от винды до самой игры)... 6-7 секунд... Для сравнения - ЭФЛЦ запускается у меня за 2,5 минуты. Вот что еще хочу про скм добавить. Поделюсь своим видением кода.Скм - это не программа с функциями, это - огромная функция, в которой полно меток быстрого перехода.Запуская новую игру, вайс читает скм с самого начала (разве не очевидно?), всякие там идентификации, спавн гг, а затем - create_thread. Что происходит когда этот невидимый указатель доходит до этого опкода? Создается еще один указатель на метке, на которую указывает опкод. Затем еще пара таких опкодов, и того (допустим) штуки три получилось. Первый самый доходит до end_thread и эмм... умирает чтоли? Не знаю как назвать это.. Вобщем перестает существовать. Другой же указатель "идет" обрабатывать код с указанной метки. Говорят, что все время игра обрабатывае только его, пока он не дойдет до опкода вэйт, и тогда переходит к другому указателю. Я не знаю как точно, все происодит слишком быстро для человека, да и вобще, работает - ну и хорошо. Еще помнится мне, в сане проблемы были из-за того, что все указатели "умерли", и игра зависла. Можно во избежание этого завести один в бесконечный цикл на подобии :loop wait 1000 jump @loopЧто происходит во время сейва. Убеждался в этом не раз, возможно я не прав, но выглядит все именно так. Во время выполнения опкода сохранения в файл сейва записывается: положения всех указателей в мейне, статистика, позиция игрока... Тут подробнее. Если игрок собирает пикап сейва, вызывается опкод сохранения, затем в коде у вас идет телепорт в другую часть комнаты (что бы повторно не схватить пикап), то когда этотсейв загрузится, игрок сначала появится на месте пикапа (или там, где опкой сохранения был вызван), и потом будет телепортирован, т.к. сохранилась позиция указателя в скрипте как раз перед телепортацией. Это пример. Немного теории от меня, в правдивости не уверен, но думаю может быть полейна чтобы представить, как работает этот самый скм. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 Тоже самое(Координаты Mode_WARRIOR - работают,свои - нет( Вот мои:create_thread @MAIN_182 :MAIN_182 wait 0 Model.Load(#KATANA) 038B: load_requested_models :MAIN_193 wait 100 if Model.Available(#KATANA) else_jump @MAIN_193 1@ = Pickup.Create(#KATANA, 15, 768.717, -15104.149, 377.168) wait 100 Model.Destroy(#KATANA) end_threadНу только координаты Mode_WARRIOR - и всё пашет...Мои - нет. Может я не правильно координаты измеряю? Как их вообще измерять?Или проблема в другом (кроме меня))? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 (изменено) А чем ты их измиряеш, в сани билдере есть свои измиритель координат. Мне кажется что у тебя что-то неверно с последней координатой Изменено 2 августа, 2011 пользователем Mode_WARRIOR Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ужастикс Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 VCPositions) Тот ещё бред,как через билдер считать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Mode_WARRIOR Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 http://thumbnails11.imagebam.com/14326/f9b8c7143252678.jpg только при запущеной игре Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.