Здравствуйте. Вопрос такой: Очень нужно сравнивать назначаемый спрайт по именам, но команда sprite_exists('имя спрайта') в любом случае возвращает единицу.(даже если спрайт не существует) Возможно он работает только с индексом(хотя ошибки "do not compare" не происходит) Но если и так, кто знает - есть ли альтернатива? http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Четверг, 13 Сентября 2018, 22:18
фентези и средневековье. Люди обычно играют в то, чего им больше в жизни не хватает. Сравнивая с современным бытом, средневековье и фентези кажутся более девственны что ли, мир в котором люди более независимы от быта, и многое другое, что общим словом можно назвать атмосферой того времени., как атмосферой игры. Я не знаю как это еще объяснить не развернувшись на десяток страниц) http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Понедельник, 30 Января 2012, 13:31
Заранее в объекте-контроллере записать код объекта, который не создан, для выполнения;
смысла нет писать код дважды. но мне нужно обращаться к самому объекту
Quote
объекта-контроллера код объекта и выполняешь его от имени объекта-контроллера.
аналогично, зачем так мурыжиться если просто написать в контроллере смысл не изменится.
Quote
записываешь в строковую переменную объекта-контроллера код объекта и выполняешь его от имени объекта-контроллера.
все эти объекты не должны присутствовать, кроме парочки тех, на которые может смотреть игрок в данный момент. Придется записывать кучу строк, и связывать. Есть варианты проще
Все что мне нужно знать: код действителен только когда есть экземпляр?. если да, то я просто создам таблицу предметов в контроллере.тогда http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Четверг, 29 Сентября 2011, 15:38
Есть ли какой способ обратится к объекту, если в комнате не существует его экземпляров. Например нужно обратиться к одному из параметров предмета, оружия, и т.п. Обратиться заочно т е не отоображая его. . Но если объект не создан, то ГМЛ не может найти переменную. Я нехочу создавать излишне объекты, и удалять только видимые из них. Это большая экономия. В общем интересно, код любого объекта работает только при наличие его экземпляра в комнате или есть и другой вариант?? http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Четверг, 29 Сентября 2011, 15:17
Понимаю негодования.Код и писал с проекта но вручную(т к на другом компе)
Quote
проверить и найти ошибку
Ошибок нет!!, код полностью функционален. И на синтаксис языка здесь смотреть необязательно
Я сначала подумал что дело в списках. Потому как в других вариантах цикла в шаге таких багов не наблюдал. Я умею пользоваться списками, но плохо себе представляю как они реализовываются компилятором. А может еще что...Нужно знать сам принцип выполнения кода http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Суббота, 24 Сентября 2011, 13:35
Так почти все объекты завязаны на счетчике времени, вы представляете себе сколько надо править А там где сложные мат функции, править надо мозги иметь. Да и в отличие от данного кода, прочие написаны в других объектах, нет гарантий что баг будет везде.
+Я же написал что проблема решена. Я жду не советов, а объяснения почему произошел баг
любитель подстраивается профи - решает гений-ломает я хочу быть профи
Quote
Я не знаком с синтаксисом ГМЛ, и я хз что такое ds_list_insert ds_list_delete ds_list_find_value, но строчка кода z=z-5 выполняется только один раз за итерацию цикла )
так должно быть, но на практике отнимается по 10 если держать код в шаге объекта, а когда код переношу в тригер, тогда отнимается 5
Добавлено (23.09.2011, 23:11) --------------------------------------------- ds_list_find_value(id,pos) - функция находит элемент в позиции pos сприска с идентификатором id ds_list_insert(id,pos,value) - записывает значение val в указанную позицию списка. При этом значение в этой же позиции меняет свою позицию на +1 а поэтому ds_list_delete(id,pos)-удаляет элемент в указанной позиции
Quote
for(i=1;i<31;i++)
писал вручную .. и в ГМ часто нарываюсь на такую ошибку конечно же i+=1 http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Пятница, 23 Сентября 2011, 23:29
А можно нормально объяснить? или вы не поняли код?
миха если вы все же не понимаете кода, тогда попрошу вас воздержаться от комментариев. А если понимаете, то объясните как идет расчет, а не обобщенно -
Добавлено (23.09.2011, 18:46) --------------------------------------------- Я знаю как работает цикл. Я пытался вручную посчитать что происходит с кодом.
Как только date_ увеличивается на 1, в тот же шаг следом идет код хода постройки, где проверяется if(tace<date_) Т е в тот же шаг ког приходит в исполнение увеличивает tace на 1, и следуюшим шагом date_ не увеличивается(поскольку счетчик не набрался)? а tace соответственно равен date_. Так почему код исполняется 2 раза???
цикл - это все равно что кварцевые часы. только полный оборот будет составлять не 12часов а столько, сколько будет задано. предположим час - это действие. Проблема в точ, то каждый час действие совершается 2 раза. Вот что я хочу знать. Какие этому препосылки
П.С. Когда нижнюю часть кода я перенес из шага в тригер, нисколько не меняя сам код, то отниматся стало нормально по 5, в независимости от "цикла" http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Пятница, 23 Сентября 2011, 18:57
if(tace<date_) { for(i=1;i<31;i++) { z=ds_list_find_value(ds_list_find_value(obj_Base,base[i,8],0),9) z=z-5 ds_list_insert(ds_list_find_value(obj_Base.base[i,8],0),9,z) ds_list_delete(ds_list_find_value(obj_Base.base[i,8],0),10) } tace+=1 } Пояснию кому интересно(хотя и ненужно, потому что код правильный) существует массив объектов base первое измерение массива - подразумевает собой порядковый номер объекта, 2 измерение - параметры объекта 8 элемент массива для каждого объекта - это список очереди строительства построек. То есть каждый эелемент списка очереди построек сам представляет из себя список(объект и его характеристики. под 9 характеристикой - сколько осталось пунктов до постройки) Первый в очереди разумеется строится. Код как раз с ним и взаимодействуетf Я нахожу 9 элемент в списке постройки, 0-вого эл-та в списка очереди построек, i-того объекта в массиве объектов base
В результате должно плучиться следуещее: каждый промежуток времени пункты хода строительства должны уменьшеаться на 5 А на деле уменьшается в 2 раза больше
Хочу разобраться в логике мышления ГМЛ http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Пятница, 23 Сентября 2011, 18:41
Если объект будет плавно сбавлять скорость, то он все равно сделает несколько кругов вокруг точки, что не есть нормально.
Я уже сделал что требовалось . Действительно надо проверять раастояние, но сбавить скорость резко, на минимальную величину, кратную скорости и угла поворота. И ето ессесно единица. С такой скорость объект будет двигаться вперед крайне медленно и позицию не пропустит. И эффект получается. http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 16:15
ладно пробегусь по скрипту подробней. мало было времени, сегодня у меня голова с другим багом болела) Если же определяется автоматически, то хорошо. Плохо если код большой. что за функция scr_text_colorit ? я такой не видел http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 15:46
Если нажать оч близко сбоку к объекто то он поворачивается почти на месте.Так и задумано. Но если сделать по вашему, вероятно это эффект не изменится. Но проблемы возникнут с градусами. Ведь в формуле проверка на "=" ведь если больше или меньше то будет родолжаться поворот в определенную сторону каждый шаг. 24-4-4-4-4 т е 4 шага он повернется а на 6 шаг градус 0, т е направление более не меняется 24 - 4 - 4 - 4 -3 -2 - 2 что же получится, ноль будет проскочен., и будет в итоге объект вертется то вправо то влево. я с этим багом сталкивался при построение формулы.
суть в том что объект движется и поворачивается на угол пропорциональный его скорости. например скорость 3 и поворот 3 или скорость 6 и поворот 3, т к 6 кратно 3
Quote
проходит твой же баг - турель стационарна
не правильно. со стационарной моделью все гораздо проще. есесно ей не надо замерять расстояние, и вследствие она не зациклится. ее достатчно просто поворачивать в таком то направление., каждый шаг определяя это направление Так что здесь я с вами не согласен. Турелья я и так могу сделать http://farchive.jino.ru/
Сообщение отредактировал vsDaTavs - Суббота, 17 Сентября 2011, 15:41