» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
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
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com