|
Akkella
Пользователь Регистрация: Авг. 2006
Всего: 175 сообщений
|
Цитата: Выключение кнопки 0 в диалогах: Offset: 0x36C48 Старое значение: 0x30 Новое значение: 0x31 P.S О результатах доложить
Поставил себе. Проверил три диалога. 0 не работает
|
Отправлено: 22:31 - 21 Июля, 2007
|
|
JSilver
Пользователь
Откуда: Moscow Регистрация: Июль 2007
Всего: 20 сообщений
|
что ж, пришлось переделать по другому. отключать ноль переправляя экзешник - не буду: я этот ноль сам регулярно использую, когда надо побыстрее послать надоедливого криттера не вдаваясь в подробности, на что он там обидится и т.п. ==================== возник гораздо более серьезный вопрос: found -- это дохлый криттер, валяющийся в клетке, если у него непустое инвентори, найденный методом: found:=metarule3((106),tile_num(xxxxx),elevation(dude_obj),0); next -- это попытка получить указатель на следующего криттера валяющегося тут же. next:=metarule3((106),tile_num(found),elevation(dude_obj),found); после драки у меня некоторые криттеры раскиданы поодиночке, а в одном дверном проеме я специально положил целую пачку народу, чтобы проверить работу скрипта. очень долго не мог понять, какого фига происходит не то что я хочу. решил проверить: display_msg("f: " + found + " n: " + next); оказалось, что при любом раскладе f == n. ВСЕГДА! бред какой-то! там же черным по белому (белым по синему) прописано "Next_Critter"!!! Что происходит??? что делать - не понимаю. есть вариант уничтожать каждого отработанного криттера, но это очень некрасиво выглядит: идет партиец а вокруг него трупы пачками прямо на глазах исчезают, не уничтожать верхний трупешник - тогда нет возможности обратиться к следующему. Я был согласен уничтожать только одного - верхнего, если под ним кто-то еще валяется - это бы выглядело нормально - какая разница сколько именно трупов образуют кляксу на одном месте, одним больше - одним меньше, - никто и не заметит, но для этого надо, чтобы found и next - отличались! А у меня - равны! Помогайте!!
|
Отправлено: 22:33 - 21 Июля, 2007 | ИСПРАВЛЕНО: JSilver - 22:40 - 21 Июля, 2007
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Господа исследователи! Убедительная просьба не сваливать всё в одну кучу. Ray, пожалуйста, продублируй инфу о кнопке 0 в теме по смещениям. JSilver, если ты серьёзно собрался заняться исследованием метарулей, создай отдельную тему в соответствующем разделе.
|
Отправлено: 10:50 - 22 Июля, 2007
|
|
JSilver
Пользователь
Откуда: Moscow Регистрация: Июль 2007
Всего: 20 сообщений
|
Цитата: Quote: from Wasteland Ghost on 10:50 - 22 Июля, 2007 Господа исследователи! Убедительная просьба не сваливать всё в одну кучу. JSilver, если ты серьёзно собрался заняться исследованием метарулей, создай отдельную тему в соответствующем разделе.
все бы ничего, но тому были две помехи: 1. новичок, не написавший и десяти сообщений, а уже возомнивший себя "исследователем" мне, мягко говоря, был бы очень странен. 2. особенно, если этот новичок запостит в "исследования" сообщение не типа "я нашел такую фичу, она круто работает, сообщаю остальным на радость", а, наоборот, "я хотел сделать то и то и у меня ничего не получилось". но, раз так надо - я продублирую свой пост там. поскольку темы про метарули не нашел - начну новую.
|
Отправлено: 15:29 - 22 Июля, 2007
|
|
Akkella
Пользователь Регистрация: Авг. 2006
Всего: 175 сообщений
|
Цитата: Вот об этом я тебе и говорил, когда говорил почитай темы. Эта проблема уже обсуждалась.
Я весь форум читал... Тут возникла проблема посерьезней... Нужно удалять все оружие в игре и запихивать новое. То, что уже есть на картах, без привязанного скрипта. А то, что добавляешь, со скриптом... Немного в тупике...
|
Отправлено: 17:55 - 22 Июля, 2007
|
|
JSilver
Пользователь
Откуда: Moscow Регистрация: Июль 2007
Всего: 20 сообщений
|
Цитата: Тут возникла проблема посерьезней... Нужно удалять все оружие в игре и запихивать новое. То, что уже есть на картах, без привязанного скрипта. А то, что добавляешь, со скриптом... Немного в тупике...
а нельзя вместо этого перекомпилить скрипт чузена, вставив туда проверку: "если чузен взял что-то в руки, и если это что-то = оружие, то если у этого чего-то скрипт не привязан, то этому чему-то скрипт привязать". в соответствии с его пидом, типом и другими твоими идеями. а то, что у него в стеке до сих пор валялось поскладированное штабелями - так штабелями и останется, не начиная занимать собственную единичную позицию. еще более правильно, хотя может и более сложно - это уж тебе решать - привязывать этот скрипт не в тот момент, когда чуз это в руки взял - может он просто два ствола сравнить хотел, у кого дамаж/дальность покруче, а в момент первого выстрела из этого ствола. извиняй, если не в кассу, поскольку я в скриптописании еще абсолютный профан, то это чисто общие соображения, а возможно ли оно к закодированию - у меня ни малейшего понятия.
|
Отправлено: 19:31 - 22 Июля, 2007
|
|
Rosetau
Пользователь Регистрация: Июль 2007
Всего: 1 сообщение
|
привет подскажите пожалуйста скачал компиль скриптов. написал в блокноте код с фака - компилю - "ssl not found" фаел есессно лежит в той же директории что и компиль что делаю не так?
|
Отправлено: 19:49 - 27 Июля, 2007
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Подкажите, как воспользоваться tile_in_tile_rect({int tile1}, {int tile2}, {int tile3}, {int tile4}, {int tile}) правильно. Не происходит ожидаемого события, с этим прямоугольником может там гексы задаются в определенном порядке? Код: #define tile_1 (13694) // 13694 #define tile_2 (13690) // 13690 #define tile_3 (15490) // 15490 #define tile_4 (15494) // 15494 if fixed_param == event_timer_12 then begin rm_fixed_timer_event(self_obj, event_timer_12); if (global_var(GVAR_DOOR_DWELLER_VAULT) <= 2) then begin if (tile_in_tile_rect(tile_1, tile_2, tile_3, tile_4, tile_num(dude_obj)) == True) then begin set_global_var(GVAR_DOOR_DWELLER_VAULT, 5); // Закрыть и Запереть дверь. obj_close( self_obj ); obj_lock( self_obj ); // Анимация закрытия двери. reg_anim_func(1, 1); reg_anim_animate_reverse(self_obj, 0, 9); reg_anim_func(3, 0); end else begin add_timer_event(self_obj, game_ticks(5), event_timer_12); end end end
Цитата: что делать - не понимаю. есть вариант уничтожать каждого отработанного криттера, но это очень некрасиво выглядит: идет партиец а вокруг него трупы пачками прямо на глазах исчезают, не уничтожать верхний трупешник - тогда нет возможности обратиться к следующему. Я был согласен уничтожать только одного - верхнего, если под ним кто-то еще валяется - это бы выглядело нормально - какая разница сколько именно трупов образуют кляксу на одном месте, одним больше - одним меньше, - никто и не заметит, но для этого надо, чтобы found и next - отличались! А у меня - равны!
А просто перемешать труп на гекс два в сторону не судьба?
|
Отправлено: 0:31 - 28 Июля, 2007 | ИСПРАВЛЕНО: Dar - 0:35 - 28 Июля, 2007
|
|
Sokil
Пользователь
Откуда: Омск Регистрация: Март 2004
Всего: 120 сообщений
|
Цитата: Подкажите, как воспользоваться tile_in_tile_rect({int tile1}, {int tile2}, {int tile3}, {int tile4}, {int tile}) правильно. Не происходит ожидаемого события, с этим прямоугольником может там гексы задаются в определенном порядке?
Правильный порядок обхода важен. А так же нужно следить, чтобы зона была строго прямоугольной. Вот мой работающий вариант: #define dude_near_hatch_1 (tile_in_tile_rect(9717, 9712, 10717, 10712, dude_tile)) Очередность обхода сам вычислишь.
|
Отправлено: 10:55 - 28 Июля, 2007
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Спасибо, Sokil помогло 1,2 указываются "горизонтали" слева направо. 3,4 указываются "горизонтали" слева направо. Мой четвертый по периметру достаточно было поменять с третьим.
|
Отправлено: 13:24 - 28 Июля, 2007
|
|
|
|