| 19.06.09 15:04
Каким бы глупым вам не показался бы вопрос, смело пишите его в этой теме. Рано или поздно я (или кто-то другой) дам на него ответ. P.S. В личку по AGS-вопросам писать не надо, я просто не буду на них отвечать. Продолжение темы --->
•
Уф! Исписали первый том вопросов и ответов.... ---------------------------------------------------------------------------- Sledgy пишет:
Наверно то что исчезает обьект, кот. в руке... Sledgy пишет:
цитата: | Ну в лук-действии пишешь ранскрипт: Display (слова автора) или DisplaySpeech (объясняет сам персонаж) |
|
При DisplaySpeech - ошибка... 20.12.09 14:10
salewa
•
Давайте разделять понятия объект и вещь, чтоб было понятней) Вещь - это то что уже в инвентаре. Объект - это Object, который ставится на локацию. Ты говоришь, что объект исчезает в руке... Имеешь ввиду вещь которая щас в руках или что? Также запиши видео. Они очень хорошо отображают проблему :) *** Исписание тома - твоя заслуга Вообще такими темпами можно было уже русский хелп для AGS перевести 20.12.09 14:24
Sledgy
•
Да я уже по другому сделал, уже не важно.. У меня в конце игры нужно тыкнуть вещью по характеру, я хотел чтобы объект при этом исчез. А теперь я сделал, чтобы в конце игры - включалось меню... 20.12.09 14:29
salewa
•
salewa пишет:
цитата: | Да я уже по другому сделал, уже не важно.. |
|
Ты старайся сам щелкать все вопросы. Пользуйся хелпом (встаешь посередине нужной команды и F1), там в принципе всё на простом английском (если что есть переводчик translate.google.ru), да и примеры всегда написаны. По большому счёту, мы все так учимся, и только в редких случаях, когда уж ну совсем нет выхода, спрашивай здесь - иначе мы скоро и этот "том" прикончим. salewa пишет:
цитата: | У меня в конце игры нужно тыкнуть вещью по характеру, я хотел чтобы объект при этом исчез |
|
Ну это легко. Значит в interactions характера берешь use inv - и там уточняешь каким предметом ткнули на героя if (character[0].activeinv==9) { ObjectOff(1); } Здесь: персонаж-0, вещь-9, а исчезает объект-1. (activeinv - какая вещь, в данный момент, в руках героя) 20.12.09 14:41
Sledgy
•
Я думаю что на форуме уже описаны все действия, кот. без особого программирования, и наверно довольно трудно превнести что-то новое в игры на этом движке... 20.12.09 14:54
salewa
•
NewRoomEx(2,100,6); MoveCharacter(0,x,y); Как сделать чтобы при перемещении в комнату, характер как бы входил в комнату??? 24.12.09 17:56
salewa
•
salewa пишет:
цитата: | Как сделать чтобы при перемещении в комнату, характер как бы входил в комнату??? |
|
Переместить его за пределы комнаты (т.е. указав координаты за границами комнаты - менее 0 или более максимума), затем приказать идти на точку в пределах комнаты. 24.12.09 18:20
Crimson Wizard
•
Если указать координаты за комнатой, он потом не входит... 24.12.09 18:43
salewa
•
salewa пишет:
цитата: | Если указать координаты за комнатой, он потом не входит... |
|
Надо указывать как ходить - eAnywhere, чтобы мог перемещаться вне разрешённых для ходьбы областей (в старой версии это может по другому называться, не в курсе). 24.12.09 20:15
Crimson Wizard
•
А как в 2.61 сделать чтобы напр. комната преставляла стол с деталями, кот. можно было бы складывать в устройство, или чтоб из инвентаря добавлять по детале к какому-либо устройству? 24.12.09 23:18
salewa
•
Все 2.х похожи друг на друга, только в 2.7х уже начались перемены в сторону объектно-ориентированного программирования (ООП), что пугает всех, кто не знает, что это просто банальная схожесть с Visual Basic / Delphi. salewa пишет:
цитата: | комната преставляла стол с деталями |
|
Ну т.е. вся локация - это увеличенный обзор стола, где чё-то валяется?
цитата: | кот. можно было бы складывать в устройство |
|
Вот это крутая идея. Ты имеешь ввиду собирать эти детальки как лего? Как конструктор? Это можно сделать. Можно через инвентарь (так проще), а можно и находу - так эффектней, но скорее всего сложнее.
цитата: | или чтоб из инвентаря добавлять по детале ...? |
|
Ну это банально. Это и есть обычный способ применения инвентаря на что-либо. А там уж смотришь по глобальным переменным, какие детали уже соединены, и во что "превратить текущую конструкцию", чтобы как бы добавилась еще одна деталь. *** Всегда лучше начинать с малого. Например с инвентарного способа. А потом можно перейти на способ находу. Инвентарный способ Итак. Лежат детали на столе. Тыкаешь по ним - и берешь в инвентарь, они исчезают. Все кроме первой детали. На первую деталь тыкаем из инвентаря второй деталью - и вуаля - две детали вместе (просто меняешь вид объекта первой детали, ну картинку) Потом третья, четвертая - просто меняешь картинку объекта. Пока он не превратится в устройство. И всё. Имитация присоединения деталей. *** Способ находу Это надо: 1) научиться двигать объект в real-time по экрану (по столу) Т.е. ты щелкнул по нему мышью и держишь кнопку - в этот момент когда ты двигаешь мышь, объект движется с курсором Отпускаешь кнопку мыши - всё, объект "упал" и лежит на новом месте. 2) А если "кидаешь" его на другую деталь (ну допустим опять: на первую деталь), то опять-таки просто изменяется картинка объекта первой детали (а которую "кинули" - просто исчезает). Т.е. пункт 2) в принципе лёгкий и делается из инвентарного способа. Нужно только замутить пункт 1) Это в принципе не так и сложно. *** Вот пример из двух объектов: http://jift.narod.ru/invis/ags_Lego.rar (20 кб) - можно двигать объект - двиганье за любую точку объекта - соединение объектов* (*получилось именно соединение КРАСНОГО с зеленым, а не наоборот; ну тут короче копаться надо... зависит от того, какой объект "ВЫШЕ". А "выше" объект тот, у кого номер больше) скрипты находятся в: - mouseclick (globalscript) - repeatable комнаты - gamestart (globalscript) 25.12.09 09:41
Sledgy
•
Странный вопрос. Если у вас есть знание основ AGS, то этого должно хватить, надо лишь правильно представить себе задачу и применить свои знания. Во открытом проекте, который выкладывался на форуме, было нечто подобное: http://sq.forum24.ru/?1-3-0-00000007-000-0-0#001 Проект расчитан на 2.72, но может тамошнее решение и для 2.61 подойдёт. 25.12.09 00:04
Crimson Wizard
•
Странный ответ...И причем тут это проект... 25.12.09 05:55
salewa
•
salewa пишет:
Ну я типа хотел намекнуть, что многое можно самому придумать, если поднапрячься даже если с первого раза получится плохо, всё равно какой-то результат. salewa пишет:
цитата: | ..И причем тут это проект... |
|
Там есть комната, в которой почти буквально сделано то, о чём вы спрашивали. Можно воспользоваться, как примером, если подойдёт. [реклама вместо картинки] 25.12.09 14:55
Crimson Wizard
•
В общем, мой пример - складывать как конструктор. Пример Кримсона - собирать из деталек одну картинку как из мозаики (имхо, ваще нереал!!!! О_О майн гот!) 25.12.09 18:45
Sledgy
•
Вот вопрос. Когда я играл в 7 days в конце надо было убегать от маньяка. При приближение маньяка конец. Как сделать такое же в AGS? 26.12.09 00:39
evarube
•
evarube пишет:
цитата: | Вот вопрос. Когда я играл в 7 days в конце надо было убегать от маньяка. При приближение маньяка конец. Как сделать такое же в AGS? |
|
Первое, что приходит в голову: 1) преследователю даётся указание догонять игрока, команда FollowCharacter 2) в функции room repeatable execute (название зависит от версии AGS) проверять, соприкасается ли враг с игроком. В версии 3.* это делается с помощью функции Character.IsCollidingWithChar, в ранних версиях вроде бы AreCharactersColliding 26.12.09 00:55
Crimson Wizard
•
if (AreCharacterColliding(0,1)==0) (надо смотреть F1-help по этой команде, там есть пример и пояснение) Если столкнулись персонажи 0 и 1, то то-то то-то. Также есть столкновения с объектами. 27.12.09 09:14
Sledgy
•
adm244 пишет:
цитата: | Вопрос. Как сделать так, что бы при нажатии на объект у мыши появлялись два выбора действия. |
|
Это не так просто :) Существует специально созданный шаблон, называется Verb Coin. В версиях 3+ он точно есть, в ранних - не помню, может быть и нет. В этом шаблоне значально заданы 3 выбора действия. Как делал SamosWork, не знаю, либо сам все с нуля спрограммировал, либо создал игру с помощью шаблона и редактировал под свои нужды. Надо у него самого спросить. Если без шаблона всё делать самому, то в общем виде так: создаешь GUI с набором кнопок под каждое возможное действие; делаешь так, чтобы оно появлялось по нажатию левой кнопки. Далее, в зависимости от того, на что игрок нажал, делаешь какие-то кнопки видимыми, какие то нет. Или может быть лучше иначе - сделать насколько кнопок без четких привязок действий, и по ситуации присваивается им графика и действия. 24.01.10 23:34
Crimson Wizard
•
adm244, можно сделать 2 действия, при нажатии Левой и Правой кнопок мыши. А вот "Verbs" для AGS 2.x: http://jift.narod.ru/invis/ags_Verbs261.rar Что нужно скопировать себе в проект: - ongamestart - globalscript (функции вверху) - в General Settings - "When interface disabled" должен стоять "GUIs go black" - interface click там для VERBS одна строчка (гуи тоже должен называться VERBS) - там же я изменил номера иконбара, т.к. удалил курсоровые кнопки - mouse_click - убрал setnextcursormode, после processclick добавил две строчки (клик на объект и клик на другое) Делать кнопки видимыми надо в функции, где 1111, 0111, и тд 1111... - все кнопки 0111... - нет первой кнопки 0101... - нет первой и третьей кнопок и тд Реакция на действия - рядом, в другой функции Количество действий, по сути, неограничено. Главное: - создать соотв. число кнопок - maxverbs в ShowVerbs поставить соотв. - все кнопки должны быть с чётными номерами (0,2,4,...), так получилось потому что я еще создавал label поверх (при желании "чётность" можно убрать, чуть-чуть подредактировав везде и удалив label'ы) 25.01.10 08:47
Sledgy
•
adm244 пишет:
цитата: | Вопрос. Как сделать так, что бы при нажатии на объект у мыши появлялись два выбора действия. Наглядный пример игра Base от SamosWork. |
|
Вот тут написАл. http://sq.forum24.ru/?1-4-0-00000043-000-0-0-1264417987 25.01.10 13:16
SamosWork
•
Всё делал сам. Через день-два выложу "making off base6-12" Количество действий у меня произвольное. Хоть 100. Выложу видео как работают... ну, например, 20. :) 25.01.10 07:49
SamosWork
•
http://narod.ru/disk/17452195000/bug.rar.html -какой-то непонятный баг((( 31.01.10 19:41
Слэш Вохаул
•
Слэш Вохаул пишет:
цитата: | http://narod.ru/disk/17452195000/bug.rar.html -какой-то непонятный баг((( |
|
24 мб... А можно узнать хотя бы приблизительно, что там в архиве и в чем суть бага? 31.01.10 20:09
Crimson Wizard
•
в архиве видео с багом, скрин словаря и скрипт гуи. смысл бага таков: какую бы комманду из словаря я не вводил, всегда пишут, что этого слова нет в словаре 31.01.10 20:18
Слэш Вохаул
•
Video.dat не открывается ничем. Переименовывал в avi - без толку. *** Ты бы видео лучше записывал в exe (через UVScreenCamera) - там маленькие файлы получаются. Ну или сжимай кодеками XVid или DivX. Вот тут есть Фрапс, UVScreenCamera, ... http://qiqer.ru/programma-dlya-zapisi-video-s-ekrana-skachat.html *** Судя по команде Say() ты использовал какой-то шаблон? T&J Soft шрифт? 2.0 (англ+рус) или 1.0 (только рус)? Еще был шаблон парсера (ввода с клавиатуры), ты его не пробовал? Там используется не стандартный AGS, а свой способ ввода команд. Возможно, стоит попробовать его. http://jift.narod.ru/invis/Vvod_RUS.rar Подозреваю, что буквы "хъжэбю" не будут работать в стандартном AGS-методе, т.к. это "[];',." знаки, которые те же AGI- и SCI0- движки (напр., SQ1-3 EGA) не воспринимают, а AGS создан как бы по их подобию + SCI VGA 01.02.10 04:45
Sledgy
•
Sledgy пишет:
это не тот файл. там должен быть что-то вроде .upr - не сжатый проект видео сделаный в программе
ЗЫ шрифт я сам сделал позже кину ссылку 01.02.10 15:48
Слэш Вохаул
•
В общем фильм никак не читается) 01.02.10 15:57
Sledgy4
•
попробуй нажать правой клаишей мыши --> открыть с помощью --> UVScreenCamera 01.02.10 16:08
Слэш Вохаул
•
Получилось) Ошибка в глобал скрипте номер 502. Слова "Лабион" нет в словаре или оно в игнор-листе. Честно говоря, тут простая задача. 1. Для ввода надо создать GUI Textbox 2. GuiOn когда надо вводить - вводится он автоматически там, если я не ошибаюсь (т.е. достаточно жать кнопки) 3. в keypress ловить нажатие Enter (когда этот Gui включен) 4. и сравнивать написанное в textbox с тем что нужно: StrComp(GUITextbox_label, "Лабион")==0 - т.е. совпадение, тогда то-то Тут не нужно использовать словарь 01.02.10 16:28
Sledgy
•
Вот http://jift.narod.ru/invis/ags_vvod_slova.rar Кликни там рукой на чашку. Вводи любые слова, а потом попробуй labion. Скрипт находится в Edit Script GUI; в gamestart надо делать guioff. Textbox просто ложится на гуи ("А" инструмент возле label)), ну и убираешь грани (hide ...) и всё) 01.02.10 16:45
Sledgy
•
А можно ли запускать флеш в агс (*.swf)? 07.02.10 10:46
salewa
•
в хелпе агс 3.1.2 для функции PlayVideo написано : "Plays an AVI, MPG or OGG Theora file, or any other file type supported by Media Player." проигрывает avi, mpg, ogg theora и всех других типов файлов поддерживаемых Media Player. я думаю речь идет о Windows media player. Media Player поддерживает swf и flv? нет. значит и ags не позволяет играть флэш ролики. ага, не играет. попробовал, пишет что формат не тот. 07.02.10 12:13
mighty might
•
AGS умеет читать файлы, которые лежат в папке с игрой. Т.е. по идее его можно научить читать FLV, но надо знать код конвертации туда и обратно, в общем здесь нужен специально написанный плагин. 07.02.10 12:43
Sledgy
•
Что делать если такой скрипт: и такая ошибка: 01.03.10 13:04
Андрей200895
•
там ошибка не в скрипте комнаты, а в главном скрипте 01.03.10 15:55
Слэш Вохаул
•
И как с этим разбираться? 01.03.10 15:58
Андрей200895
•
нажми ctrl + G и поищи там ошибку во второй строке 01.03.10 16:03
Слэш Вохаул
•
цитата: | // main global script file #sectionstart game_start // DO NOT EDIT OR REMOVE THIS LINE function game_start() { // called when the game starts, before the first room is loaded } #sectionend game_start // DO NOT EDIT OR REMOVE THIS LINE #sectionstart repeatedly_execute // DO NOT EDIT OR REMOVE THIS LINE function repeatedly_execute() { // put anything you want to happen every game cycle here } #sectionend repeatedly_execute // DO NOT EDIT OR REMOVE THIS LINE function show_inventory_window () { // This demonstrates both types of inventory window - the first part is how to // show the built-in inventory window, the second part uses the custom one. // Un-comment one section or the other below. // ** DEFAULT INVENTORY WINDOW InventoryScreen(); /* // ** CUSTOM INVENTORY WINDOW GUIOn (INVENTORY); // switch to the Use cursor (to select items with) SetCursorMode (MODE_USE); // But, override the appearance to look like the arrow SetMouseCursor (6); */ } #sectionstart on_key_press // DO NOT EDIT OR REMOVE THIS LINE function on_key_press(int keycode) { // called when a key is pressed. keycode holds the key's ASCII code if (IsGamePaused() == 1) keycode=0; // game paused, so don't react to keypresses if (keycode==17) QuitGame(1); // Ctrl-Q if (keycode==363) SaveGameDialog(); // F5 if (keycode==365) RestoreGameDialog(); // F7 if (keycode==367) RestartGame(); // F9 if (keycode==434) SaveScreenShot("scrnshot.bmp"); // F12 if (keycode==9) show_inventory_window(); // Tab, show inventory if (keycode==19) Debug(0,0); // Ctrl-S, give all inventory if (keycode==22) Debug(1,0); // Ctrl-V, version if (keycode==1) Debug(2,0); // Ctrl-A, show walkable areas if (keycode==24) Debug(3,0); // Ctrl-X, teleport to room } #sectionend on_key_press // DO NOT EDIT OR REMOVE THIS LINE #sectionstart on_mouse_click // DO NOT EDIT OR REMOVE THIS LINE function on_mouse_click(int button) { // called when a mouse button is clicked. button is either LEFT or RIGHT if (IsGamePaused() == 1) { // Game is paused, so do nothing (ie. don't allow mouse click) } else if (button==LEFT) { ProcessClick(mouse.x, mouse.y, GetCursorMode() ); } else { // right-click, so cycle cursor SetNextCursorMode(); } } #sectionend on_mouse_click // DO NOT EDIT OR REMOVE THIS LINE #sectionstart interface_click // DO NOT EDIT OR REMOVE THIS LINE function interface_click(int interface, int button) { if (interface == ICONBAR) { if (button == 4) { // show inventory show_inventory_window(); } else if (button == 5) { // use selected inventory if (character[ GetPlayerCharacter() ].activeinv >= 0) SetCursorMode(4); } else if (button == 6) // save game SaveGameDialog(); else if (button == 7) // load game RestoreGameDialog(); else if (button == 8) // quit QuitGame(1); else if (button == 9) // about Display("Adventure Game Studio v2 run-time engine[[Copyright (c) 1999-2003 Chris Jones"); } // end if interface ICONBAR if (interface == INVENTORY) { // They clicked a button on the Inventory GUI if (button == 1) { // They pressed SELECT, so switch to the Get cursor SetCursorMode (MODE_USE); // But, override the appearance to look like the arrow SetMouseCursor (6); } if (button == 2) { // They pressed LOOK, so switch to that mode SetActiveInventory(-1); SetCursorMode(MODE_LOOK); } if (button == 3) { // They pressed the OK button, close the GUI GUIOff (INVENTORY); SetDefaultCursor(); } if ((button == 4) && (game.top_inv_item < game.num_inv_items - game.num_inv_displayed)) { // scroll down game.top_inv_item = game.top_inv_item + game.items_per_line; } if ((button == 5) && (game.top_inv_item > 0)){ // scroll up game.top_inv_item = game.top_inv_item - game.items_per_line; } } } #sectionend interface_click // DO NOT EDIT OR REMOVE THIS LINE |
|
Вот че в Маинскрипте как исправить? 02.03.10 05:53
Андрей200895
•
SetBackgroundFrame - это поменять картинку фона текущего room'а. Куда именно ты положил эти команды? Их надо кидать в (i) - interactions локации: before fade-in / repeatable / ... *** Маин-скрипт тут не причём. Лезь в кнопку "i" опред. комнаты, где у тебя эти команды написаны. *** В ошибке говорится, что он не знает такой команды "SetBackgroundFrame", а значит, что ты скорее всего НЕ ТУДА вставил эти команды. Надо именно в "i". 02.03.10 06:04
Sledgy
•
Подскажите пожалуйста, как анимировать какой-либо участок сцены? Добавлять обьекты и их анимировать или как то по другому? Если обьекты то немного непонятно где указывать на какие лупы ссылаться должен обьект для его анимации? Поправка: вернее не луп, его то мы указываем в Animate, непонятно где указывать из какого view брать этот луп?.. либо надо совсем не так делать Поправка 2: Все, спасибо уже нашел. люблю блин криса джонса, все так удобно для изучения... Кстати, у вас хороший форум, нашел здесь много полезного к изучению AGS (начал только-только) Вы как минимум помогаете таким людям как я очень сильно! Спасибо. В особенности спасибо конечно же Sledgy за то что выкладывает много полезных материалов и инструкций ) 10.03.10 11:31
Parradoxio
•
Parradoxio, привет Спасибо за спасибо Итак, попробуем разобрать. Parradoxio пишет:
цитата: | непонятно где указывать из какого view брать этот луп? |
|
Перед анимацией объекта нужно еще выбрать view - SetObjectView(0,0); Parradoxio пишет:
Если надо что-нить еще, спрашивай 10.03.10 16:41
Sledgy
•
Вот я как раз использовал вариант предложенный adm244 так как пользуюсь 3.1. Вот возник новый вопрос. Рылся рылся не нашел как сделать чтобы например персонаж стоял за куском локации? Либо мог заходить за этот кусок. Там вроде walk behinds какая то опция. С моим плохим английским мне чудится что это то что надо, но я помечал территорию и фиг, всеравно поверх локации помеченной бродит. Что не так? :( И тогда уж следом вопрос: есть ли возможность поставить какой нибудь другой шрифт Русский кроме того что приведен в "Уроки по AGS" ? 10.03.10 22:57
Parradoxio
•
adm244 пишет:
Помогло :) Спасибо То то я понять не мог для чего там в опциях Baseline параметр ) adm244 пишет:
цитата: | Думаю должен был достаточно понятно объяснить |
|
Кажется понял перечитав 3 раза попробую на практике попозже для усвоения и переваривания :) 11.03.10 18:12
Parradoxio
•
adm244 Чё-то скрин с деревьями дюже похож на кусок из Base6-12 :-) 15.03.10 19:33
SamosWork
•
adm244 пишет:
цитата: | SamosWork пишет: цитата: Чё-то скрин с деревьями дюже похож на кусок из Base6-12 :-) Я взял первый скрин из инета и запихнул его в пример |
|
Прикольно :-) Получилось, что кто-то тоже взял лес и наложил на него те же фильтры с теми же параметрами :-) 16.03.10 17:37
SamosWork
•
adm244 пишет:
цитата: | Так вот ты как беки делаеш... |
|
Так я и не скрывал. Я об этом пишу в каждой игре, что все материалы тырены :) adm244 пишет:
цитата: | А картинка, которую я нашел - это не фотка, а картинка, нарисованная в фотошопе |
|
Это именно фотка, обработанная фильтром. Я даже знаю каким. 18.03.10 12:53
SamosWork
•
Parradoxio пишет:
цитата: | есть ли возможность поставить какой нибудь другой шрифт Русский кроме того что приведен в "Уроки по AGS" ? |
|
Повторюсь, не подскажете? И еще, не поясните ли, как работает система когда персонаж двигает губами в след за словами своими? Это просто заготовленная анимация или как то системно можно его губы выделить ну или я не знаю :) Просто там опция Lip sync с моим плохим английским мне кажется она как то связана с синхронизацией губ, а вот о какой синхронизации идет речь я не пойму... ) 12.03.10 08:48
Parradoxio
•
Parradoxio пишет:
цитата: | есть ли возможность поставить какой нибудь другой шрифт |
|
да
очень классная опция. я вней плохо разбираюсь, но она нужна чтобы лицо персонажа менялось в зависимости от того, какую букву он произносит. 12.03.10 11:09
Слэш Вохаул
•
Parradoxio пишет:
цитата: | есть ли возможность поставить какой нибудь другой шрифт Русский кроме того что приведен в "Уроки по AGS" ? |
|
Уже отвечал, но форум чё-то глюкнул, зараза, скушал сообщения )) Можно. Пробуй любые из Windows/Fonts, кидай в проект (не Compiled, а снаружи) как agsfnt*.ttf. Вместо звёздочки номер шрифта. Но надо чтоб русские буквы были с поддержкой русской DOS-кодировки (такое не у всех). Если лом, вот несколько готовых шрифтов: http://sq.forum24.ru/?1-4-20-00000002-000-0-0 *** LipSync используется в игре "1213: Episodes 1-3" для речи главного босса-злодея. Выберите липсинк и нажмите F1 - будет хелп, но на английском. ... 3 R/S/Th/G will mean that frame 3 of the character's talking animation is shown whenever the letter R, S, Th or G is spoken. ... Номера слева - номер кадра SpeechView'а персонажа (view для разговоров). Буквы (или слоги, или слова) через "/" - это и есть те буквы (слова), увидев которые игра будет врубать указанный номер кадра. Пример "Таня пошла гулять" 0 а/о 1 у 2 я И тогда в SpeechView персонажа будет выбираться то нулевой кадр, то второй, то первый и тд Получится так: 0 2 0 0 1 2 Можно не гласные писать, а прям слоги: та, ла, ... но тогда много придётся писать) Да и зачем? Default frame for unlisted... - номер кадра SpeechView для букв (или слов), которые здесь не указаны *** Вот пример http://jift.narod.ru/invis/ags_Lipsync.rar 13.03.10 05:47
Sledgy
•
Как сделать не статичную анимацию обьекта, а привязанную к персонажу? Тоесть конкретно: Главный герой на одной из локаций с зонтом. Идет дождь. Надо показать на зонте брызги от дождя. Кадры с зонтом когда персонаж в статичном положении. Когда он идет - он без зонта (было лень делать каждый кадр с зонтом) Тоесть надо как то привязать анимацию к самому персонажу? Или создать обьект "зонт" с анимацией и чтобы этот обьект был привязан к персонажу. Как это сделать? :) 14.03.10 11:54
Parradoxio
•
По-моему, в данном случае придется поскриптить. Например, в функции "repeatable execute" данной комнаты делается так: if (player.Moving && player.View != WALKING_VIEW_NUMBER) { player.ChangeView(WALKING_VIEW_NUMBER); } else if (!player.Moving && player.View != STATIC_VIEW_NUMBER) { player.ChangeView(STATIC_VIEW_NUMBER); } Здесь - WALKING_VIEW_NUMBER - номер вида для ходьбы (без зонта), STATIC_VIEW_NUMBER - номер вида статический (с зонтом и анимацией дождя). 14.03.10 13:39
Crimson Wizard
•
Интересно, сейчас попробую 14.03.10 13:41
Parradoxio
•
Я забыл добавить, что надо запустить анимацию: вместо player.ChangeView(STATIC_VIEW_NUMBER); это: int loop = player.Loop; // сохраняем направление взгляда player.ChangeView(STATIC_VIEW_NUMBER); player.Animate(loop, DELAY); 14.03.10 13:43
Crimson Wizard
•
Crimson Wizard, чувствуется рука программиста It's Alive! ALIVE! новый вопрос: Ситуация: Автоооомобиль! *голосом якубовича* Вобщем он стоит. Надо сделать чтобы через окна автомобиля можно было видеть персонажа. Тоесть как то задать прозрачность именно для окон. Подскажите пожалуйста как. Не создавать же автомобиль по кускам из кучи обьектов и каждому задавать визибл не визибл =( было бы очень извращенно. Пытался что то делать с хотспотами - не вышло... Да и вообще по правде автомобиль у меня как кусок локации. но разумеется можно вырезать и сделать обьектом если понадобится 14.03.10 14:26
Parradoxio
•
Прозрачность... методами 2.х я бы сделал немного извращенно всё-таки: стекло с голубыми полосами (материал стекла) и белыми, которые уберутся как прозрачный фон; в итоге будет эдакая сеточка штрихами ///// и дырочки в ней, это кагбе и есть прозрачное стекло Возможно, в 3.х есть переменная transparent для объектов 15.03.10 19:15
Sledgy
•
setobjecttransparensy(номер объекта,80); 15.03.10 19:18
Слэш Вохаул
•
Надо же это есть и в AGS 2!!! 15.03.10 19:22
Sledgy
•
Sledgy это даже использовано в демоверсии sq12 15.03.10 19:23
Слэш Вохаул
•
Слэш Вохаул пишет:
цитата: | setobjecttransparensy(номер объекта,80); |
|
А, понял. Типо вырезать окна из машины. Наложить на локацию обьект машину , далее наложить поверх машины в прорези обьекты окна и у окон сделать прозрачность минимум. Чето я туплю, почему то думал про другое... угу... 15.03.10 20:33
Parradoxio
•
У меня вопрос насчет главгероя. Как сделать, чтобы он уменьшался и увеличивался, перемещаясь по локации. К примеру, я собираюсь сделать коридор и естественно будет круто, если персонаж будет уменьшаться, когда идет вверх по коридору. 16.03.10 18:22
DJKrolik
•
в walkable area выбираешь цвет, которым нарисована зона ходьбы, ставишь галочку на use scalling и пишешь минимальный и максимальный процент роста персонажа. 16.03.10 18:32
Слэш Вохаул
•
Слэш Вохаул О, спасибо. Это я наверное рано начинаю задавать вопросы 16.03.10 18:51
DJKrolik
•
adm244 пишет:
цитата: | Только вот загвоздка.... Она не всегда работает как надо. Ищу почему... |
|
Кстати, с подобной проблемой столкнулся с румагсовым "Normal Day". На объекты тень не работает! Поэтому приходилось их затемнять вручную через Paint ;) DJKrolik, тут можно задавать любые вопросы. Просто большую часть должны объяснить видеоуроки, но они пока застопорились немного (продолжение будет, просто надо нарезать) 17.03.10 07:05
Sledgy
•
adm244 вот это интересно, 44 урока правда они вроде про 3 версию, я вот весь в раздумиях. 17.03.10 09:40
DJKrolik
•
adm244 пишет:
цитата: | Видимо ты просто не поставил в настройках объекта |
|
В 2.61 такого нет adm244 пишет:
цитата: | Эт с каких пор на демиарте в разделе "Ваш Арт" публикуются фотки замазанные в фотошопе |
|
А как ты докажешь обратное, автор всегда может отмазаться, что он так круто рисует) 18.03.10 14:12
Sledgy
•
еше есть классная тень - в регионах можно выбирать порцент затемненности. это нужно чтобы персонаж идя в тени становился темнее. 16.03.10 19:23
Слэш Вохаул
•
есть ли возможность использования movedirect в значении true так, чтобы работали walk-behinds? 19.03.10 18:16
Слэш Вохаул
•
Слэш Вохаул, не разбирался, но можно поступить хитро. Кроме стандартной зоны ходьбы (walkable area 1), закрасить другим цветом оставшуюся область (walkable area 2). Отключить изначально 2ую: RemoveWalkableArea(2); И включить, когда нужно делать MoveDirect, при этом конечно использовать просто Move. Имитация того, что персонаж идёт напрямую, минуя зону ходьбы (1) (включать через RestoreWalkableArea(2); ) Ну и под конец опять отключить. *** adm244, в interactions комнаты Walk off (...) screen edge - Выход за пределы экрана (...) (...) - left, right, bottom, top --- слева, справа, снизу, сверху 21.03.10 06:59
Sledgy
•
Sledgy у меня и самого был такой вариант, но проблема в том, что нужно, чтобы персонаж выходил за границы бэкграунда, а это нереально, если он просто идет по walkable area 21.03.10 11:51
Слэш Вохаул
•
adm244 пишет:
цитата: | Вопрос: Как выполнить проверку на выхода объекта(текста) за пределы экрана ? |
|
Что за "объект(текст)"? Это объект ИЛИ текст или объект-текст? ;) Если объект, то, помимо предложенного выше варианта Sledgy, можно сравнивать координаты с System.ScreenWidth и System.ScreenHeight. Если речь о тексте, то все зависит от того, каким образом выводится текст. В общем, - больше информации нужно. 21.03.10 20:11
Crimson Wizard
•
используй вместо walkbehind объекты, наложенные поверх героя (baseline вниз) Или один объект. Вырезанная копия бэкграунда. И когда нужно, включаешь его - ObjectOn 21.03.10 13:04
Sledgy
•
Немного не догоняю сейчас, как сделать чтобы анимированный обьект был за всеми другими обьектами/персонажами. Тоесть чтобы главгерой ходил по нему сверху, а не за ним 28.03.10 09:57
Parradoxio
•
Блин, как все легко то оказалось :) 28.03.10 10:26
Parradoxio
•
Вопрос, а как сделать чтобы вторичный персонаж в сцене, стоя постоянно на одном месте мог при этом произносить фразы в некоторый промежуток времени? Тоесть есть какая то команда, которая бы тормозила его повторяющиеся фразы чтоли... 28.03.10 17:23
Parradoxio
•
спасибо, adm244, все очень подробно расписал, теперь ясно 28.03.10 18:46
Parradoxio
•
LUA - это язык AGS 3.x скрипта? 29.03.10 05:09
Sledgy
•
Ну типо да, ток немного облегченный, тоесть условия легче писать. 29.03.10 11:02
adm244
•
Скрипт с заданными по порядку текстами работает отлично, но вот на рандомный почему то жалуется в указанной строчке int charsay; // вводим числовое значение для определения рандома if (IsTimerExpired (1)) // задаем условие, что если таймер 1 закончил отсчет, то делаем... (ниже) charsay = Random (1); // устанавливаем равенство пар-ра Random для charsay. Где 1 - кол-во действий (число от 0), в нашем случае фраз, произносимых персонажем) if (charsay = 0) cChar.SayBackground ("Ставлю на 10 красный"); - Parse error in expr near 'charsay' лично я не понимаю что ему именно не нравится( 29.03.10 20:27
Parradoxio
•
Хм... теперь работает, но остается текст выбранный вначале. Причем выбирается стабильно первый текст. Получается не работает почему то именно рандом. .. пытаюсь исправить... 29.03.10 20:49
Parradoxio
•
Спасибо за труды, понял я в чем суть ошибки, в начальном скрипте что ты писал ты забыл указать скобку после if (IsTimerExpired(1)) открывающую далее рандом и закрывающую его.А я по своей неумеючести не мог догадаться что их нужно дописать :) 29.03.10 21:47
Parradoxio
•
я открыл посмотрел вроде не вижу скобок в твоем посте старом :D модеры удалили если только 29.03.10 22:00
Parradoxio
•
Parradoxio пишет:
цитата: | я открыл посмотрел вроде не вижу скобок в твоем посте старом :D модеры удалили если только |
|
И зачем им это надо Lipsync - вроде без разницы, но попробуй и малые и большие туда добавить 31.03.10 06:41
Sledgy
•
По поводу Lip sync. Там есть разница как я буквы записал? Большими или маленькими? почему то перестала работать функция... 30.03.10 16:45
Parradoxio
•
Он скорее нужен для видимости, чем для реалистичного общения. 31.03.10 15:37
Sledgy
•
Можно ли заставить обьект говорить? И как? Неудобно для каждого третьесортного персонажа создавать новый чарактер, было бы проще с обьектами... 02.04.10 06:52
Parradoxio
•
Объекты ваще удобнее: их и сразу видно на локации. Я делал так: присваиваешь объекту view речи, анимируешь, включаешь диалог и после диалога анимацию отключаешь. 02.04.10 06:57
Sledgy
•
Мне вот нужно чтобы он сам бэкграундом болтал, без диалога с ним, это возможно? :) 02.04.10 06:58
Parradoxio
•
используй таймеры в репитедли экзекьют и пусть себе болтает кстати, диалоги же могут состоять только из фраз одного героя (как бы тупо это не звучало:)) Sledgy уже все действия написал, которые в repeatedlyExecute засунуть нужно 02.04.10 07:07
mighty might
•
Но это обьект, я так и делаю, но выскакивает такая вот ошибка " '.SayBackground' is not a public member of 'Object'. Are you sure you spelt it correctly (remember, capital letters are important)?" При этом я не хочу использовать чарактеры, потому что с ними неудобно потом будет, когда их станет миллион, хочется узнать как решить данную проблему именно с обьектом 02.04.10 07:09
Parradoxio
•
Ошибка пишет примерно следующее: <<Команды '.SayBackground' не существует для Object'а. Возможно, вы неправильно написали команду; не забывайте про заглавные буквы>> Через GUI. (Гуи де Фюнес) Там ты ложишь label - это и будет текст объекта-персонажа. Постоянно надо будет перед диалогом автоматически размещать его над персонажем и по центру - лучше сделать спец.функцию типа Tell (num_ob, text); И в функции уже можно юзать Wait(), игра не должна ставится на паузу. Если не поканает, то через таймер (SetTimer, ...) 02.04.10 07:23
Sledgy
•
мм.. что то слишком мудрено, наверное все же вернусь к чарактерам :) 02.04.10 07:54
Parradoxio
•
Я такой способ использовал в Random Game #1 в одном месте, где оба персонажа ОДНОВРЕМЕННО сказали фразу вслух (в интро где-то), методами Say/DisplaySpeech это нереально. 02.04.10 09:14
Sledgy
•
Аа)) Этого в 2.61 нет. В смысле background-версии диалогов)) 02.04.10 09:31
Sledgy
•
разрешение 1024*768 максимальное? нельзя ли сделать какое нибудь другое чтобы отношение было 16:9 или 16:10 ? 04.04.10 09:41
Parradoxio
•
adm244 заметил в твоем эпизоде по спейс квест стояло разрешение 1280*800. (в римейке 5ого эпизода)Как сделал? и где этот latterbox включать? :) В General не вижу 04.04.10 09:54
Parradoxio
•
adm244 А если мне нужно сделать обратное, чтобы на широкоэкранном мониторе изображение не растягивалось на весь экран, а оставалось как бы в изначальном размере 4:3, а по бокам черные рамки к примеру. Такое возможно как нибудь сделать? 04.04.10 10:20
Parradoxio
•
adm244 не не, ты видимо меня не понял ) мне нужна элементарная вещь, я вот когда создаю Exe файл и запускаю его, у меня моя игра, которую я изначально создаю с разрешением 1024*768 на моем широкоэкранном мониторе растяигвается и становится аляповатой. Дак вот мне нужно чтобы она не растягивалась на широкоэкранных мониторах, а просто по бокам были рамки черные. По крайней мере функция letterbox мне в этом никак не помогает. Но во многих простейших играх сделанных не на ags такое было замечено, да и не похоже что в этом есть что то страшное замудреное, узнать бы просто где это включить можно было 04.04.10 15:17
Parradoxio
•
Parradoxio пишет:
цитата: | мне нужна элементарная вещь, я вот когда создаю Exe файл и запускаю его, у меня моя игра, которую я изначально создаю с разрешением 1024*768 на моем широкоэкранном мониторе растяигвается и становится аляповатой. Дак вот мне нужно чтобы она не растягивалась на широкоэкранных мониторах, а просто по бокам были рамки черные. |
|
Запускаешь winsetup и ставишь галочку "Side borders on widescreen monitors" ЗЫ. Точно не помню, с какой версии АГС это работает. В 3.2 точно есть. 04.04.10 17:12
Crimson Wizard
•
Crimson Wizard пишет:
цитата: | ЗЫ. Точно не помню, с какой версии АГС это работает. В 3.2 точно есть. |
|
3.1.2 SP1? или есть новее. Странно, но ни в 3.1 ни в 3.1.2 в winsetup такой опции не вижу... 04.04.10 18:36
Parradoxio
•
adm244 пишет:
цитата: | Это бета, официально еще не вышедшая. Так что пока что только программирование поможет, или качать бету. |
|
Да, это бета, ну то есть почти уже оф. релиз. Я ей пользуюсь пару месяцев, пока никаких проблем не было. 04.04.10 20:39
Crimson Wizard
•
Черт знает почему, но эта опция мне не помогает. Терь пришлось перейти на 3.2 так как сохранил в ней нечаянно )... 05.04.10 09:46
Parradoxio
•
Parradoxio пишет:
цитата: | Черт знает почему, но эта опция мне не помогает. |
|
Странно... а какие параметры у игры? И какие опции стоят в сетапе? Моя игра 640 на 480, неё сработало. Parradoxio пишет:
цитата: | Терь пришлось перейти на 3.2 так как сохранил в ней нечаянно ). |
|
Надо делать копии, а то мало ли что! ) 05.04.10 11:04
Crimson Wizard
•
Crimson Wizard пишет:
цитата: | .. а какие параметры у игры? |
|
1024*768, 32 бит. Сейчас попробую создать новую с другими параметрами дабы проверить. EDITСтранно но проверка ничего не определила. Возможно это какой то внутренний глюк, но у меня вышеописанный параметр не хочет вообще ни на что влиять, хоть стоит галка, хоть не стоит... 05.04.10 11:23
Parradoxio
•
adm244 пишет:
цитата: | Ну так ничего удивительного, это бета версия :) |
|
я даже и не подозревал что они там на форумах прячут беты ) искал полчаса, поисковики ничего не хотели выдавать :D adm244 пишет:
цитата: | Стоит сообщить об этом Крису... |
|
мой английский страдает, вдруг там ему уже отписали по этому поводу, а я даже и не узнаю об этом :) да и ситуацию не знаю как описать, ведь у Crimson Wizard все работает на 640*480 а у меня нигде не хочет 05.04.10 13:31
Parradoxio
•
Никто ничего не прячет ) тема в Technical Forum называется "AGS 3.2 ***", где *** часть меняется от билда к билду. Кстати, в той ветке описывалось вроде бы похожая проблема: http://www.bigbluecup.com/yabb/index.php?topic=37668.msg533975#msg533975
цитата: | I just tested the new version but the sideborders for widescreen monitors don't appear for me. The game is 800x600 and my laptop's resolution is 1280x800. |
|
ЗЫ. Отписать про твой случай и я могу, но правда не знаю, поможет ли это чем нибудь. 05.04.10 13:59
Crimson Wizard
•
А, вот кстати, что Cris Jones написал по этому поводу: If you're not getting the borders, could you download DebugView from here: http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx run the DbgView.exe from that download, and then run your AGS game. When the game has loaded, just quit again. Then, have a look in DebugView and you should see a log of the game loading, which should explain why the borders are not there -- could you post the relevant bit of the log here? В общем - качаешь программу, запускаешь ее, запускаешь свою игру в режиме sideborders, потом выходишь и сохраняешь лог из окошка DebugView. Этот лог запости в той ветке на англ форуме, или в этой, а я тогда туда скопирую с комментарием. adm244 пишет:
цитата: | Или пусть вон Crimson Wizard тебе скомпилит |
|
Я уверен, что дело не в том, где скомпилено, а в том, где запускается игра. 05.04.10 14:04
Crimson Wizard
•
Crimson Wizard пишет:
цитата: | или в этой, а я тогда туда скопирую с комментарием. |
|
сейчас сюда копирну что там выскочило, сек. Ц... терь ссылка с дебаггером не хочет грузится. Вобщем как сделаю отпишусь сюда... EDIT вот ссылка на ридми с логами из дебаг виева http://slil.ru/28915185 Crimson Wizard если не трудно и умеешь писать по английски то буду рад если оповестишь их там, может чего крис и ответит по этому поводу... 05.04.10 14:46
Parradoxio
•
как после использования setcharacterbaseline возвращать ему нормальные бэйзлайны? ИМХО там команда должна быть что-то вроде restorecharacterbaseline, но такой я не нашел :( *** уже сам разобрался :) 11.04.10 13:47
Слэш Вохаул
•
Как локально в скрипте комнаты поменять Scalling персонажа вне зависимости от Scalling'a установленного в настройках комнаты? ScallingVolume и т.п. параметры что то не хотят работать... смысл - в комнате 2 персонажа, начинаешь одним, он большой, но при скаллинге в комнате становится чересчур маленьким, при этом 2ой персонаж при скаллинге комнаты такой какой нужен. Поэтому надо изменить скаллинг именно 1ого персонажа, ибо перерисовывать так для каждой комнаты персонажей смысла не вижу, наверняка должна быть возможность внутри редактора 12.04.10 10:48
Parradoxio
•
на странице персонажа поставить галку на "ignore scalling" 12.04.10 13:48
Слэш Вохаул
•
цитата: | на странице персонажа поставить галку на "ignore scalling" |
|
Мне нужно именно изменить начальные размеры у обоих персонажей, но на разные процентные величины, а не оставлять их как есть, потому что те что по стандарту не подходят ни у 1ого ни у 2ого персонажа главная суть вопроса: есть ли где нибудь опция что нибудь в духе "player.ScalingLevel(100);" и куда ее нужно вставлять? (чтобы вместо "player" можно было поставить имя любого персонажа главного, а вместо "100" задать любой процентный размер view'a) EDIT опция player.ScaleVolume() никак не хочет вползать в скрипт без ошибок... 12.04.10 14:15
Parradoxio
•
У меня вопрос. К примеру в комнате шкаф. Как сделать так что-бы он закрывался и открывался? 12.04.10 14:34
evarube
•
evarube пишет:
цитата: | У меня вопрос. К примеру в комнате шкаф. Как сделать так что-бы он закрывался и открывался? |
|
Или, как варианты, простой подменой объекта или сменой видимости: 1) object[x].Graphic = ...; 2) object[x].Visible = false; object[y].Visible = true; По второму способу у меня в "мьюзикл Студенты" холодильник открывается и закрывается. 13.04.10 15:06
SamosWork
•
adm244 SamosWork . 13.04.10 15:10
evarube
•
Задача: в Гуи множество кнопок, надо чтобы система запоминала нажатие мышкой определенных из них и если нажатие этих кнопок выполняется запускала другую функцию (типо головоломка) Пол дня сидел так и не понял как сделать чтобы агс запоминал что то и потом обращался к этому :( Кто подскажет с чего начать хотя бы, где рыть яму так сказать? 14.04.10 16:11
Parradoxio
•
Parradoxio А просто в переменные писАть при нажатии? 14.04.10 16:34
SamosWork
•
А как его писать в переменные то? в духе Button1=s? Но так не позволяет. Или там "int s" или как. И где, внутри функции нажатия по кнопке? Я ведь человек далекий от программирования, в разных ЯП и скриптовых языках не шарю Так что буду вас мучить вопросами если сам не разберусь EDIT я понимаю что вопрос глупый, но если я правда не могу найти на него ответ (стал бы я здесь постить просто так, мне оно надо) 14.04.10 17:10
Parradoxio
•
Parradoxio Ну тут я даже в растерянности Как можно пытаться написать игру, не зная элементарных правил программирования Так... ну сначала тогда: 1) Читаем внимательно HELP - он хороший и понятный, спасибо автору. 2) А каким образом вообще определяется в данном случае, что в GUI нажата хоть какая-то кнопка? По событию кнопки "OnClick"? И что дальше происходит в коде? 3) Вы сможете написать тут пример простой задачки?: Есть GUI и кнопка. На кнопку происходит нажатие ПРАВОЙ кнопкой мышки. После этого картинка на кнопке меняется на изображение героя. 14.04.10 17:53
SamosWork
•
SamosWork пишет:
цитата: | Как можно пытаться написать игру, не зная элементарных правил программирования |
|
Ну для меня это самое последнее над чем я хотел бы думать. Согласитесь что основу для становления игры добротным проектом создает отнюдь не программирование, программирование это всего лишь оболочка, но не более) Но придержусь ваших советов и поизучаю основы :) Crimson Wizard пишет:
цитата: | Там вроде еще Scripting Tutorials есть. |
|
его и читаю, думаю там найдется много полезного для меня=) вообще не знал о том что Help такой обширный SamosWork пишет:
цитата: | 3) Вы сможете написать тут пример простой задачки?: Есть GUI и кнопка. На кнопку происходит нажатие ПРАВОЙ кнопкой мышки. После этого картинка на кнопке меняется на изображение героя. |
|
мм, вряд ли. если только позже когда поизучаю хелп агсерский ) 14.04.10 18:02
Parradoxio
•
Parradoxio пишет:
цитата: | Согласитесь что основу для становления игры добротным проектом создает отнюдь не программирование, программирование это всего лишь оболочка, но не более) |
|
Не соглашусь категорически. Игра - это программа. И программирование тут главное. Parradoxio пишет:
цитата: | мм, вряд ли. если только позже когда поизучаю хелп агсерский ) |
|
Думаю, что без этого Вам будет даже непонятно то, что тут Вам ответят. Это обязательно. 14.04.10 18:30
SamosWork
•
SamosWork пишет:
цитата: | Игра - это программа. И программирование тут главное. |
|
спорить не стану, у каждого свое мнение. Просто хочется вспомнить какие отличные программисты сидят в CryTek и какие отличные дизайнеры и идейные люди находятся в Quantic Dream (разумеется и там и там есть, и программеры, и дизайнеры, можете не напоминать) 14.04.10 18:39
Parradoxio
•
SamosWork пишет:
цитата: | Не соглашусь категорически. Игра - это программа. И программирование тут главное. |
|
имхо главное - каждому делать свое дело ) Paradoxio, если у тебя плохо со скриптами, но есть хорошая идея для игры (хорошие худ. способности итд), то найди кто скрипты писать умеет, и все. 14.04.10 19:54
Crimson Wizard
•
Crimson Wizard пишет:
цитата: | Paradoxio, если у тебя плохо со скриптами, но есть хорошая идея для игры (хорошие худ. способности итд), то найди кто скрипты писать умеет, и все. |
|
к сожалению это нереально, игру создаю не я один, мы с человеком уже достаточно глубоко погрузились в этот проект, но найти такого же заинтересованного скриптера живущего поблизости шансов абсолютно нету, поэтому мне приходится изучать с нулевыми знаниями 15.04.10 06:32
Parradoxio
•
Возможно, проблема в том, что вы взяли именно 3.х. Там много программного скрипта, как я понял. Хотя для знающих всякие проги типа Delphi, Visual C++, Visual Basic это даже проще. Имхо самой интуитивно понятной для новичков является 2.61 :)) Там надо знать всего пару команд (принцип построения одинаковый), и уметь пользоваться хелпом (знать немного английский). Вот и всё. Если не знаете англ., используйте переводчики, например сайт http://translate.google.ru/ Function still open - функция всё еще открыта; т.е. не закрыта скобочкой или точкой с запятой; чем она там должна закрываться. *** Parradoxio пишет:
цитата: | Задача: в Гуи множество кнопок, надо чтобы система запоминала нажатие мышкой определенных из них и если нажатие этих кнопок выполняется запускала другую функцию (типо головоломка) Пол дня сидел так и не понял как сделать чтобы агс запоминал что то и потом обращался к этому :( Кто подскажет с чего начать хотя бы, где рыть яму так сказать? |
|
Звучит на самом деле очень просто :))) Но опять-таки - да, для знающего агсера. Раньше, чуть ли не год назад, я бы сам крепко задумался. Изучается АГС методом тыка, проб и ошибок. Знать программирование, я думаю, необязательно. Вернее так: вы его постепенно и будете осваивать. Здесь проще чем в Дельфях и Си++. *** Нажатия кнопок в 2.61 ловятся через IsMousePressed (а клавиш IsKeyPressed). Также есть вариант в global-скриптах - onmouseclick --- где еще по умолчанию (в Default-игре) написано что на правый клик надо менять курсор Решение простое: 1) ловим через глобал скрипт (onmouseclick) или в repeatable комнаты (или глобальный repeatable) нажатие мышки IsMousePressed, открываешь скобку --- пишется, что надо ввести. Можно нажать на команду F1 - и увидишь пример команды и описание на англ (юзай переводчик) 2) сравниваем с правильным паролем, когда например набрана нужная длина; и если пароль неверный, то сбрасываем пароль (опустошаем), чтобы игрок мог попробовать еще раз снуля *** Примеры для размышления: Скрытый текст
пример вслепую (без агс) (часть нужного кода, так сказать начало): if (IsMousePressed(left_button)) { SetGlobalInt(15,1); } Но лучше словами: если НажатаМышь(левая) =если значение1 равно 0 //GetGlobalInt(1)==0 ==значение1=1 //коммент: было одно нажатие мышки =иначе если значение1 равно 1 //комент: иначе (else) нужно, чтоб подряд "если" не срабатывали, а только при новых нажатиях ==значение1=2 ... а лучше даже так: если НажатаМышь(левая) =значение1=значение+1 //SetGlobalInt(1,GetGlobalInt(1)+1); если значение1=10 =сообщение("вы нажали левую кнопку мыши 10 раз") а если нужен код из правых и левых кнопок в разном порядке типа abaaba, то можно поработать со стрингами (буквенными "носителями информации", так сказать): string buffer; GetGlobalString(1,buffer); //принимаем в символьную переменную (aka string) значение глобального стринга 1, и далее работаем с этим "буфером", для удобства если НажатаМышь(левая) =Buffer=Buffer+"a" если НажатаМышь(правая) =Buffer=Buffer+"b" если ДлинаСтроки(Buffer)>=6 =если Buffer="abaaba" ==сообщ("Вы разгадали пароль!!!") =иначе ==сообщ("Неправильный пароль!!!" ==SetGlobalString(1,""); //опустошаем стринг пароля *** Вот такой скрипт в голове ты как минимум должен представлять. Т.е. логика действий.
| 15.04.10 17:56
Sledgy
•
Sledgy пишет:
цитата: | Вот такой скрипт в голове ты как минимум должен представлять. Т.е. логика действий. |
|
ух.. дал много пищи для размышления ) спасибо за труды. Ничего не имею против скриптов и программистов, просто у меня с логикой в програмных кодах не заладилось еще со школы да и относился я к этому всегда халатно, чтож буду потихоньку исправлять 15.04.10 18:34
Parradoxio
•
Там вроде еще Scripting Tutorials есть. 14.04.10 17:56
Crimson Wizard
•
У меня проблема. Решил тут тестить игру но ошибка. Написанно Fuction still open. Что делать??? 14.04.10 19:09
evarube
•
evarube пишет:
цитата: | У меня проблема. Решил тут тестить игру но ошибка. Написанно Fuction still open. Что делать??? |
|
видимо какую то функцию в скрипте стер, а в правом окне где на молнию тыкал и выбирал ее забыл стереть ее название которое там теперь написано 14.04.10 19:28
Parradoxio
•
adm244 пишет:
цитата: | Данная ошибка появляется если забываешь закрыть функцию в скрипте. Если используешь 3.х, то кликни по ошибке и просто закрой функцию, добавив } в конце. |
|
У меня 2.61. 16.04.10 12:57
evarube
•
Здесь логика должна быть в мышлении :))) Скрипт не так страшен, как его малюют. 3.х кстати вообще выглядит как язык программирования... Сейчас запустил его еще раз, глянул... Что-то я очень сомневаюсь, что стоит начать с 3.х. В отличии от 2.61 там чёрт ногу сломит 16.04.10 08:40
Sledgy
•
Там ведь вроде где то можно переключать чтобы все работало как 2.61(или как 2.7.. не помню)? Я бы и рад чтобы полегче, но мне нужно хорошее разрешение для игры, все рисуется от руки и желания делать пиксельно вроде как нету. 16.04.10 09:38
Parradoxio
•
Parradoxio пишет:
цитата: | Там ведь вроде где то можно переключать чтобы все работало как 2.61(или как 2.7.. не помню) |
|
не совсем, там меняется только стиль скрипта, а сама прога как была "неповоротливой", так и остаётся - тот же интерфейс в стиле языков программирования.
не совсем понимаю, о чём речь. Пиксельно - это рисование по точкам. Во всех AGS графику можно хоть в 3D MAX делать, хоть в фотошопе, никто не заставляет рисовать по точкам. Parradoxio пишет:
цитата: | хорошее разрешение для игры |
|
это какое? 16.04.10 11:03
Sledgy
•
Sledgy пишет:
ну собственно вроде как с 3.1 только введено 1024*768. (точно не помню, просто там в описании было написано в духе "Теперь доступно разрешение 1024*768") А меньше данного никак нельзя 16.04.10 15:26
Parradoxio
•
evarube В 2.х все команды надо закрывать точкой с запятой. Все открытые фигурные скобки { рано или поздно должны закрываться второй фигурной скобкой }, это как begin и end в Pascal (Delphi) Parradoxio, ну да, в 2.х вроде нет 1024x768. В общем, дело житейское в какой агс работать. Но да, обычно все крутые проекты, что я видел, сделаны на 3.x 16.04.10 15:36
Sledgy
•
Sledgy пишет:
цитата: | Parradoxio, ну да, в 2.х вроде нет 1024x768. В общем, дело житейское в какой агс работать. Но да, обычно все крутые проекты, что я видел, сделаны на 3.x |
|
ну дело даже не в "крутости" Просто я вот вижу много отличных проектов на агс, чувствую в душе что они отличные, по отзывам видно и все дела. Но блин я скорей всего не стану в них играть. Почему? Маленький экран и куча пикселей торчат. Все же мы ведь в 21 веке уже :( А такие игры делали еще в 80ых годах прошлого века. Может быть это особенный стиль, но как то вот не прельщает совсем... 16.04.10 15:57
Parradoxio
•
К слову, Dreamfall - это 2 часть саги. 1-ая - это Longest Journey (2д-квест со средней графикой). И вроде как планируется в будущем Dreamfall Episodes или Chronicles, т.е. 3 часть. В общем, я за "пиксельные игры", ибо не всегда графика побеждает интересность. Вернее, никогда ;) 16.04.10 18:43
Sledgy
•
Sledgy пишет:
цитата: | В общем, я за "пиксельные игры", ибо не всегда графика побеждает интересность. Вернее, никогда ;) |
|
хочу тебя поправить, ты видимо за интересные игры, а не за тупо графически хорошие. Но ведь если есть уже все возможности чтобы сделать хорошую графику почему бы ее не сделать + сделать игру интересной контингент тех кому эта игра понравится увеличится в разы 17.04.10 07:20
Parradoxio
•
adm244 пишет:
цитата: | Так как на хорошую графику уходит гигантское кол-во времени, и многие забрасывают сюжет, геймплей и прочее на дальнюю полку. Все лишь бы сделать наконец эту игру и забыть о ней. |
|
ну вот с этим да, не могу ни согласиться... Вот и жалко что рвение куда то уходит у нынешних компаний квестоделов. Существовали бы сейчас Сиерра, Лукас Артс и Revolution Software (те что брокен сворд делали), вот они бы думаю вложили в игры весь свой талант и душу... 17.04.10 09:09
Parradoxio
•
Parradoxio пишет:
цитата: | Но ведь если есть уже все возможности чтобы сделать хорошую графику почему бы ее не сделать + сделать игру интересной контингент тех кому эта игра понравится увеличится в разы |
|
абсолютно согласен :) Именно за это я и люблю старые игры - что там всё было, как сказал adm244, в одном флаконе. А сейчас очень редко найдешь интересную игру, обычно она всегда красива графически (или хотя бы любопытна на вид), но вот чтобы прям сесть и играть в неё, проходить.... Например игра "Runaway 1-2" - ну да, есть там что-то интересное, особенно во 2 части (особенно по графике)... Но вот сказать прям, что это супер-игра, от которой я фанатею и прям балдею от сюжета и её интересности...... :/ Нихрена подобного. И вот так почти по каждой новой игре, необязательно квест. Поэтому я и выбираю не графику, а "всё остальное", потому что оно вкуснее 18.04.10 04:09
Sledgy
•
цитата: | Если на месте:SetObjectFrame(номер_объекта, номер_view, номер_loop, номер_кадра); и изменять через паузу --Wait(x); |
|
А как вставить паузу в анимацию? 20.04.10 17:10
salewa
•
Сделал анимацию больших букв, получился вес exe 250 мб, это не меняется? 21.04.10 05:53
salewa
•
salewa пишет:
цитата: | Сделал анимацию больших букв, получился вес exe 250 мб, это не меняется? |
|
Попробуй или уменьшить размер букв (в самих файлах) или ужать сами файлы. Т.е. если ты вставлял BMP, то может быть отсюда и большой вес; а если сохранишь например в PNG - то будет меньше... EXE AGS хорошо сжимается, но 250 мб за буковки - это обо...раться O_o' *** Попробуй вставить AVI всё-таки. Кодек Indeo5 нормально воспроизводится в AGS 2.x. Я сделал видео в своей игре "Johnny Cage. Protege", видео замаскировал под music.vox (т.е. на самом деле это авишка). Игра в архиве лежит. Ну и через PlayVideo - воспроизводишь внешний файл (можешь назвать его хоть 1.dat)... явно должно быть меньше 250 мб... *** Насчет видео - я прочитал в хелпе. Оказалось, что надо чтоб у видео были такие же цвета, как и у игры. Т.е. 256 / 16 bit / 32 bit. 22.04.10 04:31
Sledgy
•
Да там анимация букв(картинок). Я наверно оставлю так, игра будет солидно весить. А авики не стабильно работают... 22.04.10 18:59
salewa
•
А как сделать чтобы за взятый предмет или за собранную вещь из двух предметов начислялись очки? 25.04.10 06:21
salewa
•
Ошибка:
цитата: | $SCORE$, а для отображения мак. числа $TOTAL_SCORE$ |
|
Example: You have @SCORE@ out of @TOTALSCORE@ points. А как делается чтоб первый экран двигался за персонажем? 25.04.10 14:44
salewa
•
adm244 пишет:
цитата: | Это делается автоматически, если бекграунд больше чем размер экрана. |
|
У Sledgy было в игре Normal Day, кстати как её пройти? Как пользоваться командой PlayMusicQueued? 25.04.10 16:05
salewa
•
Normal Day - мочишь всех врагов и всё. Надо приловчиться стрелять так, чтобы попадать во врагов (баг игры, не всегда удаётся выстрелить нормально) Напиши эту команду, встань в середину неё и нажми F1 - появится пример использования. 26.04.10 04:08
Sledgy
•
Sledgy пишет:
цитата: | Normal Day - мочишь всех врагов и всё. Надо приловчиться стрелять так, чтобы попадать во врагов (баг игры, не всегда удаётся выстрелить нормально) |
|
Normal Day - это где кодовый замок! 26.04.10 19:24
salewa
•
У меня вопрос. Как сделать так что герой не сможет сделать это пока не сделает определае действие. И вот еще. Как сделать так если герой не имеет ключ то дверь не откроеться типа нету ключа - не откроеться дверь?? 26.04.10 18:37
evarube
•
adm244 пишет:
цитата: | Например: if (door_open == true) { oDoorClosed.Visible = false; oDoorOpen.Visible = true; } else { player.say ("Нужно найти ключ."); } Тоесть все завязано на логике и все вообщем-то просто. |
|
Мне надо на версию 2.61. 26.04.10 20:29
evarube
•
adm244 пишет:
цитата: | if (door_open == true) { object[0].visible = false; // Объект 0 - закрытая дверь object[1].visible = true; // Объект 1 - открытая дверь } else { DisplaySpeech(1,"Нужно найти ключ."); } |
|
Это для 2-61? А можно по пунктам что нужно сделать? 27.04.10 05:26
salewa
•
salewa, там замок только в самом начале. Там жмешь кнопки наугад (знаешь только первую часть кода), пока тебе не скажут кое-какую подсказку. И там уже подобрать будет легко. *** evarube пишет:
цитата: | У меня вопрос. Как сделать так что герой не сможет сделать это пока не сделает опред. действие. |
|
Можно использовать глобальные переменные как переключатели. SetGlobalInt(номер, значение); - присвоить значение GetGlobalInt(номер); - получить значение evarube пишет:
цитата: | нету ключа - не откроеться дверь?? |
|
Проверим, есть ли ключ у героя (2.61): //[5] - например, номер ключа в вещах (Inventory items) if (character[0].inv[5]==1) { //есть ключ, можно открывать дверь Display("Вы нашли в своей сумочке ключ и открыли дверь"); //процесс открывания двери - через ObjectOn / ObjectOff ... } else { //ключа нет, открыть нельзя Display("Нужен ключ, чтобы открыть дверь"); } Это будет работать, если ключ ВООБЩЕ есть в вещах. А если надо, чтоб ключ был В РУКАХ (т.е. выбран из инвентаря), тогда: if (character[0].activeinv==5) *** Допустим дверь - это объект. Объект "закрытая дверь". Тогда чтоб эту дверь открыть, можно дей-но просто сделать этот объект невидимым, а другой - видимым: ObjectOff(0); ObjectOn(1); //объект "открытая дверь" 27.04.10 07:22
Sledgy
•
Вот еще. Я хотел бы зделать сценку из 7 days. К примеру. За EGO гониться чел(к примеру MANIAK). Что-бы оглушить надо применить на него пушку. Тут он останавлиеться и идет анимация(к примеру 8 секунд) а потом он опять гониться за ним при этом говоря каждую секунду типо "СТОЙ! СТОЙ! Ща мой нож будет в твоем теле". 30.04.10 14:49
evarube
•
adm244 пишет:
цитата: | evarube, мы за тебя должны все скрипты в игре прописать ?)) |
|
Неее.. за меня не надо! А какие команди для 2.x?? Просто хочу сделать игру-пародию на 7 days. 30.04.10 17:58
evarube
•
evarube пишет:
цитата: | function cMANIAK_UseInv() { if (player.ActiveInventory == iGun) // Создаем условие, если игрок использует пушку (iGun) { //// Останавливаем персонажей... //// cEgo.StopMoving(); cMANIAK.StopMoving(); //// Поворачиваем персонажей друг к другу //// cEgo.FaceCharacter (cMANIAK, eNoBlock); cMANIAK.FaceCharacter (cEgo, eNoBlock); //// Анимируем маньяка //// cMANIAK.LockView (vDieButNot); // Устанавливаем VIEW маньяку. cMANIAK.Animate (0, 5, eOnce, eBlock, eForwards); // Анимируем маньяка. (см. помощь - F1) //// Возобновляем погоню //// cEgo.Say ("Упс!"); // Персонаж говорит "Упс!" cEgo.FaceLocation (player.x - 1, player.y, eBlock); // Поворачиваем игрока на 180 градусов. cMANIAK.SetWalkSpeed (2, 2); // Устанавливаем скорость маньяка на 1 единицу меньше. cMANIAK.FollowCharacter (cEgo, 4, 2); // Маньяк приследует персонажа. (см. помощь - F1) //// Устанавливаем таймер для функции раднома //// SetTimer (1, 40); // Устанавливаем таймер с ID-1 и задержкой в 1 секунду. //// Здесь все //// } } |
|
Так какие команнди для 2.61??? 02.05.10 14:51
evarube
•
evarube пишет:
цитата: | Что-бы оглушить надо применить на него пушку. Тут он останавлиеться и идет анимация(к примеру 8 секунд) а потом он опять гониться за ним при этом говоря каждую секунду типо "СТОЙ! СТОЙ! Ща мой нож будет в твоем теле". |
|
Оглушаешь через interaction маньяка (применение инвентаря) - присваиваешь глобальной переменной значение 1 например, при котором маньяк не гонится; делаешь анимацию + SetTimer(1,8*40) и if (isTimerExpired(1)==1) - опять глобпеременную делаешь как раньше, чтоб маньяк гнался. Произносить фразы через DisplaySpeechBackround, периодичность произношения тоже можно делать через SetTimer, но например 2й таймер - SetTimer(2,10); 8*40 = 8 секунд (40 - это 1 секунда) 30.04.10 18:13
Sledgy
•
Как можно выбрать главногго героя в другой комнате. Пример: идет заставка,переход на сл.рум,уже идет игра - выбрать перса например играть за свинью 01.05.10 21:52
Andrey
•
SetPlayerCharacter(номер_перса); 02.05.10 00:25
Sledgy
•
Ураааа,это то,что мне нужно) 02.05.10 07:04
Andrey
•
Вот тебе сказочное превращение, я б даж сказал, можно прогу-конвертер написать *** iGun - вместо этого номер предмета 0 - номер персонажа героя 1 - номер персонажа маньяка if (character[0].activeinv == iGun) { //// Останавливаем персонажей... //// StopMoving(0); StopMoving(1); //// Поворачиваем персонажей друг к другу //// FaceCharacter (0,1); FaceCharacter (1,0); //// Анимируем маньяка //// SetCharacterView(1,номер_виева); // Устанавливаем VIEW маньяку. AnimateCharacter(1,0,1,0); // Анимируем маньяка. (см. помощь - F1) //// Возобновляем погоню //// DisplaySpeech(0,"Упс!"); // Персонаж говорит "Упс!" FaceLocation(0,player.x - 1, player.y); // Поворачиваем игрока на 180 градусов. SetCharacterSpeed(1,character[1].walkspeed-1); // Устанавливаем скорость маньяка на 1 единицу меньше. FollowCharacter(1,0); // Маньяк преследует персонажа. (см. помощь - F1) //// Устанавливаем таймер для функции рандома //// SetTimer (1, 40); // Устанавливаем таймер с ID-1 и задержкой в 1 секунду. } 02.05.10 17:10
Sledgy
•
Спасиб Sledgy ! 02.05.10 17:21
evarube
•
У меня вопрос. По моему глупый. Вот: К примеру: EGO использует обьект(к примеру гранату) на чела(пример MAN) но главное действие будет только если EGO и MAN находяться в 11 комнате а в других должно быть сообщенние типо "Слишком рано гранату кидать." Только для AGS 2.61. 03.05.10 20:45
evarube
•
Вот еще: У EGO есть порваная бумажка. Как сделать так что-бы была типо что-то мини-игри "Собери бумажку"?? Только для AGS 2.61. 03.05.10 20:48
evarube
•
evarube пишет:
цитата: | EGO использует обьект(к примеру гранату) на чела(пример MAN) но главное действие будет только если EGO и MAN находяться в 11 комнате а в других должно быть сообщенние типо "Слишком рано гранату кидать." |
|
"Только для AGS 2.61. Интим не предлагать" if ((character[EGO].room==11) && (character[MAN].room==11)) { //...главное действие } else Display("Слишком рано..."); Скрипт этот надо писать в interactions MAN'а, use inventory on character -> //если в руках ЭГО граната if (character[EGO].activeinv==номер_гранаты_в_вещах) { // ......- и весь код, что вверху написан } evarube пишет:
цитата: | У EGO есть порваная бумажка. Как сделать так что-бы была типо что-то мини-игри "Собери бумажку"?? |
|
Мини-игра - это отдельный room. Там делаешь главгероя невидимым (виев пустоты). И лежат объекты - клочки бумаги. Далее зависит от того, как именно надо их собирать - просто пишешь скрипт насчёт взаимодействия этих объектов. Например при нажатии на один клочок - он выделяется контуром. И потом при нажатии на другой клочок - они соединяются. И тд. Или можно сделать пятнашки. 04.05.10 05:40
Sledgy
•
Как сделать чтобы анимация (перс) двигалась на месте;(:пр:анимация размножения:) 04.05.10 18:59
Andrey
•
Thanks! 05.05.10 13:02
Andrey
•
для 2.x SetCharacterView(номер_перса, номер_виева); AnimateCharacter(номер_перса, другие параметры ну там они высвечиваются - задержка между кадрами delay, цикличность repeatable, в какую сторону анимировать* - вперед по умолч или назад direct); *это не движение, а имеется ввиду если direct=0 (false), то анимация будет анимироваться НАОБОРОТ (с последнего кадра по первый) или AnimateCharacterEx - там еще больше параметров 05.05.10 06:18
Sledgy
•
Как сделать чтобы главный герой (За кого играешь ) убрать с определленой комнаты(Room'a);? 05.05.10 14:10
Andrey
•
Для 2.х - NewRoom(номер_комнаты); или NewRoomEx(номер_комн, x, y); Если сделать героя невидимым, создай пустую картинку и отдельный view под него, я его обычно называю EMPTY (в названии виева), ну и потом присвой герою новый виев SetCharacterView(0,EMPTY); //0-номер персонажа-героя; или вместо EMPTY номер виева adm244, мы походу тут будем на пару давать оба варианта - для 3.x и 2.x одновременно Как чёрный и белый рыцари Хз, почему-то такая аналогия в голове промелькнула. Чёрный - 3.x, т.к. сложный и современный; Белый - 2.x, т.к. лёгкий и гуманный к новичкам. 05.05.10 17:01
Sledgy
•
Вот вопрос. Пример: EGO одет в костюме. Что-бы выйди в космос он должен одеть скафандр. Как сделать так что-бы когда он был в костюме ему говорили типо надень скафандр. А когда он одет то говорят типо проходи и тут новая комната. 05.05.10 17:03
evarube
•
Чёрный - наоборот солидно) adm244 пишет:
цитата: | if (player.View == vCostume) Display ("Прежде чем выйти в космос, наденьте скафандр."); else { Display ("Теперь вы можете пройти."); player.ChangeRoom (номер_комнаты, координаты x, y); } |
|
if (character[GetPlayerCharacter()].walkview == COSTUME) Display ("Прежде чем выйти в космос, наденьте скафандр."); else { Display ("Теперь вы можете пройти."); NewRoomEx(номер_комнаты, координаты x, y); } *** Используйте ags-time.narod.ru как сборник AGS-ссылок 2.61: http://raritet-site.narod.ru/files/AGS.rar (хелп там в *.chm) *** Конвертер тоже думал создать, вот только смысл какой? Например, evarube здесь пишет вопрос, ты на него даешь ответ для 3.х, а он потом конвертит твои слова в 2.х?! 05.05.10 22:48
Sledgy
•
Так мне надо для 2.x! 05.05.10 19:12
evarube
•
adm244 пишет:
цитата: | Ты команды не знаешь чтоль ?? Все так же, только команды другие. Мы за тебя игру писать не будем, давай сам |
|
ЭЙ!!! Я только пишь то что мне неясно. А остальное делаю сам! 05.05.10 19:57
evarube
•
adm244 пишет:
цитата: | ведь я незнаю команды 2.х версии... |
|
Там все просто! В папке AGS 2.61 есть мануал по команндам(даже уроки!). Если сначало перевести мануал(он на инглише) то потом легче будет делать конвертер! 05.05.10 20:26
evarube
•
Почему так думаешь??? Здесь на сайте AGS с мануалом! Тем более - я им не раз пользовался(хотя я полный ноль в инглише) к примеру устроить тряску игри на некторое время! 05.05.10 21:28
evarube
•
Как сделать поднимающийся текст на подобии начальных титров в Звездных Войнах 06.05.10 18:08
Андрей200895
•
текст сохраняешь как спрайт, делаешь объект, ставишь спрайт ему, ставишь его Y 200 (если разрешение экрана 320:200) и двигаешь его на минимальной скорости до Y= 0-высота объекта 06.05.10 18:18
Слэш Вохаул
•
Короче двигаешь медленно объект, в котором картинка - твои титры. 08.05.10 06:08
Sledgy
•
http://slil.ru/29112855 Тут на картинке глюк из-за которого не удается создать Трэшвиль 1 может хэлпните? 11.05.10 12:41
Андрей200895
•
adm244 и как мне этот файл востановить? 11.05.10 15:34
Андрей200895
•
Пересохранил все-равно не робит 11.05.10 17:51
Андрей200895
•
Andrey пишет:
цитата: | И всё ,у мя тоже было ,создавал room0.crm,потом узнал что надо сзд intro.crm; |
|
В таком случае, надо просто переименовать room0.crm в intro.crm)) Андрей200895, да, ошибка говорит, что не может найти intro.crm. У тебя он вообще был? Возможно, в закладке Characters, где указываешь, в какой комнате появится главный персонаж (или другие персонажи), ты написал 0 вместо 1. (а локация №0 - это intro.crm); или где-то в скрипте написал NewRoom(0); вместо (1); 12.05.10 05:14
Sledgy
•
adm244 пишет:
цитата: | В 3.х комнаты полностью ты создаешь и никто другой |
|
В 2.х также)) 12.05.10 14:13
Sledgy
•
1.Короче ,создай комнату [new_room]; 2.Назови её intro.crm 3.вставь туда все что было; ___И всё ,у мя тоже было ,создавал room0.crm,потом узнал что надо сзд intro.crm; ***** 11.05.10 18:44
Andrey
•
Дык её необязательно создавать. Она делается самим агсером по желанию, для удобства что ли, хз. 12.05.10 16:54
Sledgy
•
Блин сейчас попытался создать intro.crm все равно не робит 15.05.10 15:10
Андрей200895
•
Андрей200895 пишет:
цитата: | Блин сейчас попытался создать intro.crm все равно не робит |
|
кинь проект в ЛС, так будет быстрее (игру смотреть не буду, просто исправлю ошибку чтоб запускалось) 16.05.10 06:01
Sledgy
•
У меня вопрос. Как сделать так что бы MANIAK больше не преследовал EGO?? 15.05.10 16:12
evarube
•
adm244 пишет:
пробовал adm244! Перешел на другую комнату и стоило перейди на несколько мертов так он появился! 15.05.10 20:47
evarube
•
adm244 пишет:
цитата: | cMANIAK.FollowCharacter(null); |
|
Я делаю на AGS 2.6. То-есть вот так? followcharacter(0);? 16.05.10 20:00
evarube
•
СКАЖИТЕ ПЛИЗ КАК УБРАТЬ ПЕРСА ????(С КОМНАИЫ) 18.05.10 19:24
Andrey
•
Сделать невидимым - присвоить пустой спрайт ChangeCharacterView(view,sprite); В другую комнату - NewRoom(num); / NewRoomEx(num,x,y); 19.05.10 09:23
Sledgy
•
сорри за мат,но нихуя не работает,что такое спрайт,и виев??? 19.05.10 16:16
Andrey
•
Спрайт - это один кадр. Виев - это несколько кадров, которые создают анимацию. (например хождение влево, или подпрыгивание на месте) Если ничё не помогает, скинь проект в ЛС, я исправлю и кину тебе 19.05.10 16:44
Sledgy
•
Sledgy ,надо в третьей комнате убрать,и в 4 тоже!(sequel'a) 19.05.10 18:41
Andrey
•
можно ли при помощи скрипта изменять хотспот на инвентарном предмете? *** нашел. команда называется ChangeCursorHotspot 19.05.10 17:15
Слэш Вохаул
•
Если в этих комнатах сиквела никогда не будет, то в Room Editor - Settings - поставь галку на Hide player character 20.05.10 05:30
Sledgy
•
короч какая-то хня с регионами - нужно через скрипт двигать перса, при этом пересекая территорию, покрываемую регионом. регион отказывается не запускать сразу же свой скрипт! все перебрал: глобальные переменные, char stands on region, blocking... че делать?! 20.05.10 20:07
Слэш Вохаул
•
Sledgy не, он наоборот срабатывает, а мне это не нужно adm244 спс) щас проверю 21.05.10 12:41
Слэш Вохаул
•
Слэш Вохаул пишет:
цитата: | регион отказывается не запускать сразу же свой скрипт |
|
т.е. наоборот "отказывается запускать"? Тебе надо, чтоб персонаж на автомате прошел по определенной линии и чтобы регион ЗАПУСТИЛСЯ во время пути? Проверил. MoveCharacterBlocking не даёт региону сразу же запуститься, нужно использовать MoveCharacter. 1 вариант (посложнее) Курсору через SetMouseCursor надо придать форму часов (Wait), что якобы задержка идёт; в mouse_click скрипте через глобальные переменные запретить нажатие левой и правой кнопок мыши, например так: if ((IsGamePaused() == 1) && (GetGlobalInt(x)==1)) { //ничего не делать } else if (button==LEFT) { ProcessClick(mouse.x, mouse.y, GetCursorMode() ); } else { // right-click, so cycle cursor SetNextCursorMode(); } Но надо еще будет отключить GUI (не GUIoff, а что-то другое; сменить тип появления иконбара короче, иначе можно поднять мышку вверх и нажать любую иконку) *** 2 вариант (попроще) SetGlobalInt(13,0); MoveCharacter(0,17,97); while (character[0].walking!=0) //пока персонаж идёт { //если он наступает на Регион №2 if ((GetRegionAt(character[0].x,character[0].y)==2) && (GetGlobalInt(13)==0)) { SetGlobalInt(13,1); //чтобы наступание на регион было разовым StopMoving(0); //чтобы заработал скрипт Display (или какой надо) Display("YAHOOO!!!!!"); //это и есть внутренность Региона! Т.е. сам регион должен быть пустым; это просто пятно без скрипта MoveCharacter(0,17,97); //возобновляем движение } Wait(1); } 21.05.10 07:11
Sledgy
•
Да мне кажется, тут вообще ерунда тогда! Перед тем, как отправить Героя в эту авто-анимацию, просто отключаешь глобальную переменную, а внутри региона идёт проверка на неё. *** SetGlobalInt(13,1); //теперь регион не будет доступен MoveCharacterBlocking... А внутри региона if (GetGlobalInt(13)==0) //проверка на переменную { Display("регион работает!"); } --- А после MoveCharacterBlocking возврашаешь всё назад - SetGlobalInt(13,0); 21.05.10 14:12
Sledgy
•
в том то и дело, что не работает. он в таком случае "запоминает", что герой там все-таки был и запускает скрипт уже после того, как персонаж прийдет в пункт назначения(( 21.05.10 14:16
Слэш Вохаул
•
Тогда попробуй так: (1) SetGlobalInt(13,1); MoveCharacterBlocking... Wait(1); SetGlobalInt(13,0); *** (2) SetGlobalInt(13,1); MoveCharacterBlocking... SetTimer(1,20); [repeatable] if (IsTimerExpired(1)==1) SetGlobalInt(13,0); 21.05.10 14:28
Sledgy
•
собственно. есть ли команда "или" (по аналогии с &&)? 25.05.10 15:16
Слэш Вохаул
•
Слэш Вохаул, F1 - "operators" - там все значки *** % - Remainder (остаток). 5 % 3 = 2 (т.е. 5 / 3 = 1, а остаток=2) Остальные мутные какие-то. 26.05.10 06:02
Sledgy
•
|| 25.05.10 15:39
Legato
•
Что делать если нажимаешь на иконку ходьбы а получается глаз??? 26.05.10 16:46
Andrey
•
правильнее: пуск --> выполнить --> format c: *** Andrey, хз кинь проект в ЛС 26.05.10 17:06
Sledgy
•
пуск --> стандартные --> командная строка потом вводишь : C:\ delete и все обязательно заработает!! 26.05.10 16:49
Слэш Вохаул
•
Слэш Вохаул пишет:
цитата: | пуск --> стандартные --> командная строка потом вводишь : C:\ delete |
|
Щас сделаю спасяб) 26.05.10 17:40
Andrey
•
Слыш Вохаул пишет:
цитата: | пуск --> стандартные --> командная строка потом вводишь : C:\ delete |
|
Спасибо сработало,а почему теперь в Windows'e нет пуска ,о бляттттЬ! 26.05.10 17:43
Andrey
•
xDD 26.05.10 17:42
Слэш Вохаул
•
НАЖИМАЕШЬ НА ИКОНКУ(Сверху панель с иконками).при нажатии на неё получается глаз (уже не иконка )! 26.05.10 20:24
Andrey
•
Это весьма не глупый вопрос,короче взгляни sqss демо,на 10 комнате после заставки нажми на иконку ходьбы! 26.05.10 21:04
Andrey
•
adm244 пишет:
цитата: | Ты не можешь зайти в глобальный скрипт и подправить строчку про иконку ? |
|
Ты мастер по AGS ,а я ни фига! 26.05.10 21:34
Andrey
•
У меня вопрос. Как сделать так что-бы вот - EGO смотрит на MAN и EGO говорит что это чел. Но когда мы играем за MAN и когда он смотрит на самого себя то говорит что это он. 28.05.10 13:57
evarube
•
evarube пишет:
цитата: | У меня вопрос. Как сделать так что-бы вот - EGO смотрит на MAN и EGO говорит что это чел. Но когда мы играем за MAN и когда он смотрит на самого себя то говорит что это он. |
|
В Inceneration Перса входишь и пишешь___look ; Display("Это я"); 28.05.10 13:59
Andrey
•
evarube пишет:
цитата: | У меня вопрос. Как сделать так что-бы вот - EGO смотрит на MAN и EGO говорит что это чел. Но когда мы играем за MAN и когда он смотрит на самого себя то говорит что это он. |
|
Т.е. ты имеешь ввиду, играя за ЭГО, жмешь Глазом на МЭНА? вкладка Characters - MAN - interactions его - Look а чтоб когда играешь за МЭНА: вкладка Characters - EGO - interactions - Look И в обеих случаях делай проверку на то, кто сейчас Player. *** int player_now=GetPlayerCharacter(); if (player_now==EGO) { //играем за ЭГО и тыкаем на себя (или на МЭНА, если это interactions МЭНА) } else { //играем за МЭНА и тыкаем на ЭГО (или на себя, если это interactions МЭНА) } 2 вариант - через SetGlobalInt, GetGlobalInt. 28.05.10 14:33
Sledgy
•
Не понял. Я играю за EGO - должно писать - Это человек - а MAN - Это я - Федя. 28.05.10 14:04
evarube
•
ты накакомAGS? 28.05.10 14:13
Andrey
•
2.61. 28.05.10 14:16
evarube
•
Не так! Его смотрит на Мена - Это чел. Мен на себя - Это я Федя! 28.05.10 14:36
evarube
•
evarube, в любом случае, просто используй GetPlayerCharacter, чтобы определить, каким персонажем играет игрок. То есть в "Interaction -> Look at character" мэна пишешь: if (GetPlayerCharacter() == EGO) DisplaySpeech(EGO, "Это чел"); if (GetPlayerCharacter() == MAN) DisplaySpeech(MAN, "Это я"); 28.05.10 15:08
Legato
•
Legato 28.05.10 15:16
evarube
•
По сути это тоже самое) Но Legato всё проще объяснил 28.05.10 15:23
Sledgy
•
Ну как? 28.05.10 15:06
evarube
•
Вот вопрос. Если курсор заденет хотстоп то покажитесь его название. 28.05.10 16:02
evarube
•
evarube пишет:
цитата: | Если курсор заденет хотстоп то покажитесь его название. |
|
При клике? Или просто если мышкой провести? Если провести мышкой, то в repeatable - глобальном или комнаты: через GetHotspotAt(mouse.x,mouse.y) 28.05.10 16:37
Sledgy
•
Просто мышкой провести. 28.05.10 16:42
evarube
•
adm244 пишет:
цитата: | evarube, создаешь прозрачный GUI и в него ставишь label "@OVERHOTSPOT@" |
|
Это вряд ли работает в 2.61, а evarube на нем делает. Я например наоборот не шарю в 3.х. И вопросы по нему - для меня как китайская грамота. Вот тут как раз ты один из единственных, кто может правильно ответить. 28.05.10 19:05
Sledgy
•
цитата: | Это вряд ли работает в 2.61, а evarube на нем делает. |
|
В это сложно поверить, но и в 2.61 это работает :) 28.05.10 19:24
Legato
•
команда SetCharacterIdle не работает. вот что пишет в warnings:
цитата: | (in room 35): SetCharacterIdle called while character view locked with SetCharacterView; idle ignored |
|
вот сам скрипт: Скрытый текст
if (character[GetPlayerCharacter()].activeinv == 12) { SetCharacterIdle(1,66,3); SetGlobalInt(49,1); FaceLocation(1,character[1].x,200); SetCharacterView(1,56); AnimateCharacterEx(1,14,5,1,0,0); WaitMouseKey(450); SetCharacterView(1,4); FaceLocation(1,character[1].x,200); LoseInventory(12); Say("spoiler"); Say("/1 spoiler"); } else Say("spoiler");
| 30.05.10 21:12
Слэш Вохаул
•
У меня вопрос. А как зделать так что-бы кнопка ESCAPE если ее нажать в игре то игра закроеться? 31.05.10 12:01
evarube
•
adm244 *** Вот еще вопрос. Я хочу зделать меню выбора игрока. Как зделать так что если будет нажата кнопка Q то тут будет комната где надо будет выбрать игрока? *** Вот еще. Как зделать так что-бы герой ФЕДЯ при клике РУКА на дверь попал в другую комнату но потом герой ЕГО при клике на дверь РУКОЙ то тот попадет в другую комнату? *** Ну так что? 31.05.10 13:04
evarube
•
Слэш Вохаул пишет:
цитата: | команда SetCharacterIdle не работает. вот что пишет в warnings: (in room 35): SetCharacterIdle called while character view locked with SetCharacterView; idle ignored |
|
В ошибке сказано: "Команда SetCharacterIdle вызывается только тогда, когда персонажу присвоен view через команду SetCharacterView" evarube пишет:
цитата: | А как зделать так что-бы кнопка ESCAPE если ее нажать в игре то игра закроеться? |
|
меню Script - on_key_press. Находим там строчку if (keycode==17) QuitGame(1); // Ctrl-Q Это и есть кнопка выхода. Но по умолчанию она стоит на "Ctrl+Q" (keycode номер 17). Жмём F1, закладка Указатель и пишем ASCII - залазеем туда Здесь мы видим keycode-коды на все клавиши. Находим там Escape и вместо "17" пишем соотв. номер. evarube пишет:
цитата: | Я хочу зделать меню выбора игрока. Как зделать так что если будет нажата кнопка Q то тут будет комната где надо будет выбрать игрока? |
|
Т.е. если ДЕРЖАТЬ нажатой кнопку Q, то будет комната; а если отпустить - исчезнет? Или просто при нажатии Q - появляется комната? Если 2й вариант, то как с ESC - находишь код кнопки, вставляешь новую строчку и вызов комнаты. Если 1й вариант, то это вряд ли сработает. AGS 2.61 не видит ОТЖАТУЮ клавишу, он видит только НАЖАТУЮ и после чего обнуляет keycode. Сам пробовал сделать проверку нажатия для игры "Танчики" (в Johnny Cage Protege), так и не нашел способа. evarube пишет:
цитата: | Как зделать так что-бы герой ФЕДЯ при клике РУКА на дверь попал в другую комнату но потом герой ЕГО при клике на дверь РУКОЙ то тот попадет в другую комнату? |
|
Аналогичный вопрос ты уже задавал, используй глобальные переменные или запрос на то, кто сейчас главный герой. Interactions двери (как объекта или hotspot) - Interact ... (Действие рукой / Воздействие на...) if (GetPlayerCharacter()==FEDYA) NewRoom(1); if (GetPlayerCharacter()==EGO) NewRoom(2); evarube пишет:
цитата: | Я пишу но вначале тут чаптер попал в комнату а потом пошел |
|
Сначала MoveCharacterBlocking, а потом уже NewRoom. 01.06.10 06:51
Sledgy
•
Sledgy 01.06.10 13:37
evarube
•
NewRoomEx(комната,х,у); если НЕ персонаж игрока, то character[номер перса].room=номер комнаты; character[номер перса].x=координаты х, куда попадет игрок; character[номер перса].y=координаты y, куда попадет игрок; 31.05.10 14:12
Слэш Вохаул
•
На ags 2.61? 31.05.10 14:44
evarube
•
ага 31.05.10 14:47
Слэш Вохаул
•
Чё то не работает! Я пишу но вначале тут чаптер попал в комнату а потом пошел. Так надо наоборот! *** Так как наоборот? 31.05.10 14:52
evarube
•
там все действия по порядку совершаются. поставь команду новоая комната в конец скриптв. если не сработало: проверь, у тебя для ходьбы выбрано MoveCharacter или MoveCharacterBlocking. если просто мувкэрэктер, то исправь на последнее 31.05.10 15:28
Слэш Вохаул
•
Слэш Вохаул *** Чёто не работает! Мож пример скинешь? 31.05.10 15:30
evarube
•
А вот и минус. Я так пробовал но тут то... Сначала ФЕДЯ а потом ЕГО а надо что бы если играем за ФЕДЮ то тот идет и попадает в комнату 2 а если за ЕГО то попадаем в комнату 3. 01.06.10 15:58
evarube
•
evarube пишет:
цитата: | Я так пробовал но тут то... Сначала ФЕДЯ а потом ЕГО а надо что бы... |
|
Ну и объяснение xD Короче у тебя ходьба MoveCharacterBlocking должна тоже быть после if. *** if (GetPlayerCharacter()==FEDYA) { MoveCharacterBlocking(FEDYA,...); NewRoom(1); } if (GetPlayerCharacter()==EGO) { MoveCharacterBlocking(EGO,...); NewRoom(2); } 01.06.10 16:21
Sledgy
•
Как сделать что бы изначально все объекты в комнате были выключеня а потом по хаду речи они включались и выключались 02.06.10 09:12
Андрей200895
•
Выключать объекты можно в самом проекте - галочки убирать с ObjectVisible или как-то так, когда встаешь на объект Ну или в interactons комнаты before fade in - все их вырубать ObjectOff(x); 02.06.10 09:44
Sledgy
•
Как сделать чтобы игрок начинал с комнаты Intro а потом шел в комнату 1 03.06.10 05:01
Андрей200895
•
Я уже разобрался надо было в номере комнаты поставить 0. EDIT. Как сделать что бы объекты двигались? 03.06.10 09:51
Андрей200895
•
moveobject / moveobjectdirect 03.06.10 12:37
Sledgy
•
Вот скрипт Вот ошибка 04.06.10 06:30
Андрей200895
•
неверно введено кол-во пар-тров 04.06.10 11:04
Слэш Вохаул
•
Слэш Вохаул и как это исправить 04.06.10 12:07
Андрей200895
•
после координат введи скорость 04.06.10 12:46
Слэш Вохаул
•
У меня вопрос. Как сделать так что к примеру что-бы мы смогли выйди из комнаты надо нажать на кнопку. 04.06.10 20:09
evarube
•
evarube ставишь объект Кнопка и при нажатии рукой (interactions - interact object) пишешь NewRoom. Если надо сначала подойти, то перед этим - MoveCharacterBlocking. 05.06.10 07:46
Sledgy
•
Не. Вот что - что-бы открыть дверь надо нажать кнопку на пульте и что-бы закрыть дверь - нажать туже кнопку. 05.06.10 15:34
evarube
•
Ну лучше через глобальную переменную действовать. При нажатии на объект-переключатель: - если (ГлобальнаяПеременная_например_№5==1) тогда { она=0 открыть дверь } иначе { она=1 закрыть дверь } *** Тебе нужно уже улавливать эти вещи. Т.к. задаешь уже похожие друг на друга вопросы. В смысле, везде на них один и тот же ответ: юзай глобальные переменные. 05.06.10 15:56
Sledgy
•
Sledgy 05.06.10 16:02
evarube
•
Как зделать так что бы один и тот же звук шел постоянно? 09.06.10 14:20
evarube
•
Похоже тут надо юзать SetTimer, время поставить такое (сколько секунд звука)*40 Ну и в repeatable (комнаты или игры) ловить isTimerExpired(номер_таймера)==1, тогда опять воспроизвести этот звук и опять тут же SetTimer(номер_этого_таймера) 09.06.10 14:42
Sledgy
•
Sledgy пишет:
цитата: | Ну и в repeatable (комнаты или игры) ловить isTimerExpired(номер_таймера)==1, тогда опять воспроизвести этот звук и опять тут же SetTimer(номер_этого_таймера) |
|
Чето не понял. Примерчик дай плиз! 09.06.10 15:10
evarube
•
Sledgy скинь пример а то нефига не понял! 09.06.10 15:26
evarube
•
adm244 Для этого придётся юзать AGS 3.x evarube, соединяй сообщения вместе, а то форум закакаем. Сейчас я сделаю пример. 09.06.10 16:12
Sledgy
•
Ага! 09.06.10 16:17
evarube
•
http://jift.narod.ru/invis/ags_repeat_sound.rar 09.06.10 16:52
Sledgy
•
adm244, тебе нужен именно SamosWork, т.к. он в 3.х более шарит. Пиши ему в ЛС, я те в аську скину его аську. *** evarube пишет:
Что именно не работает? Пишешь название видео (vasya.avi) и ложишь видео в Compiled. Нужно подобрать такой кодек, чтоб он нормально работал в АГС. Я пробовал разное ... нихрена, вот только Indeo 5 кодек нормально пошел - но у др. людей, как я понял, он не читался..... Короче воспроизведение видео в АГС - это проблема. 12.06.10 20:26
Sledgy
•
Кстать как воиспровезвезди видео? Ну команду PlayVideo(); знаю но как его запустить? 12.06.10 19:58
evarube
•
Но у меня не рабтает. 12.06.10 20:04
evarube
•
Возникла у меня такая проблемма : Входишь в инвентарь,нажимаешь глазом на предмет,ничего не пишит,раньше таки писало " Эта стандартная винтовка полиции ",щас ничего не пишит); Потом если нажмешь курсором ( Оригинальным ) на предмет ,чтобы его на что-то использовать ,не берет его,не каких реакций; Или в меню с ползунками - появляется вместо курсора икона носа!; Если нажать на пропустить нач.заставу то этого не будет; 17.06.10 13:11
Andrey
•
ты наверное какой-то гуи удалил скорее всего 17.06.10 13:13
Слэш Вохаул
•
Не удалял,я шрифт другой поставил .Эт да! 17.06.10 13:16
Andrey
•
с шрифтом никак не связано. что ты делал перед тем, как гуи перестали правильно работать? 17.06.10 13:20
Слэш Вохаул
•
http://www.7image.ru/pics/0610/43647913.png<\/u><\/a> http://www.7image.ru/pics/0610/4364821.png<\/u><\/a> *** Изменил Gui - Intro! 17.06.10 13:20
Andrey
•
Andrey пишет:
цитата: | Возникла у меня такая проблемма : Входишь в инвентарь,нажимаешь глазом на предмет,ничего не пишит,раньше таки писало " Эта стандартная винтовка полиции ",щас ничего не пишит); Потом если нажмешь курсором ( Оригинальным ) на предмет ,чтобы его на что-то использовать ,не берет его,не каких реакций; Или в меню с ползунками - появляется вместо курсора икона носа!; Если нажать на пропустить нач.заставу то этого не будет; |
|
Похоже на то, что сбился скрипт для ГУИ. Т.е. или был удалён гуи, и номера гуи поменялись - от чего не работают кнопки и появляется иконка носа (видимо предназаченная для гуи Иконбар). Надо залезть в скрипт гуи-шек и исправить номера. При нажатии глазом, почему не появляется текст о вещах - здесь как раз может из-за шрифта... короче кинь проект на ЛС и я гляну - сейчас, походу, это единственный способ всё "починить" 17.06.10 23:02
Sledgy
|
|