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


Форум TeamX » Тех. поддержка » Проблема лишних стволов. (Как избежать их накопления у игрока...)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 ] Все собщения

 
Volk
Пользователь

Регистрация: Июнь 2005

Всего: 79 сообщений

С помошью 1 и 0 хранить информацию о том что ствол в рабочем состоянии\нет

Отправлено: 2:37 - 30 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Ребятишечки, вы все забываете об одной принципиальной проблеме, которая в своё время остановила не одного исследователя данного вопроса: невозможно получить указатель на активный предмет (предмет в активной руке). Это означает, что отследить именно ту пушку, которая стреляет, не получится, а значит, не получится и реализовать тот самый износ. Так что дальнейшие пустопорожние разговоры на эту тему будут приравниваться к флуду. Утверждаете, что можете реализовать износ оружия? Скрипт в студию. Управление же из скрипта оружия характеристиками перса во-первых страшно выглядит, а во-вторых невозможно по точно той же причине: вам не узнать, какое оружие в данный момент используется.

Отправлено: 8:21 - 30 Июня, 2005
Aman
Пользователь

Откуда: Киев
Регистрация: Апр. 2005

Всего: 208 сообщений

Во-во. И я о том же вначале намекал. Единственное можно сделать случайный износ оружия, не зависящий от действий игрока (минимально зависящий). Но надо ли оно ?

P.S. Указатель на объект - это число состоящее не из одного бита , около 24 битов (навскидку) будет один указатель.

-----
Ибо логично предположить, что если недостаточно чего-либо для запуска чего-либо, то второе чего-либо, а именно то, для которого не хватает - вообще не должно запускаться. (неизвестный)

Отправлено: 8:38 - 30 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Указатель хранит все 32 бита адреса. Вот так вот.

Отправлено: 11:01 - 30 Июня, 2005
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

Цитата:
Quote: from Wasteland Ghost on 10:21 - 30 Июня, 2005
невозможно получить указатель на активный предмет (предмет в активной руке). Это означает, что отследить именно ту пушку, которая стреляет, не получится

Серьёзно что ли? :) Вообще-то наоборот.
Вот кусочек кода,  правда он не для износа оружия, а несколько других целей, но, тем не менее, успешно получает указатель на активное оружие.
Код:
 
procedure mech_inven_check begin
 variable tmp_r_hand;
 variable tmp_l_hand;
 variable tmp_rm_r;
 variable tmp_rm_l;
 variable pid_to_create;
  tmp_r_hand:=critter_inven_obj(self_obj, INVEN_TYPE_RIGHT_HAND);
  tmp_l_hand:=critter_inven_obj(self_obj, INVEN_TYPE_LEFT_HAND);

   if obj_item_subtype(tmp_r_hand)==item_type_weapon and not(is_mech_weapon(tmp_r_hand)) then begin
       display_msg("Right hand");
       pid_to_create:=obj_pid(tmp_r_hand);
       rm_obj_from_inven(self_obj, tmp_r_hand);
       add_obj_to_inven(self_obj, create_object(pid_to_create, tile_num(self_obj), elevation(self_obj)));
   end
   if obj_item_subtype(tmp_l_hand)==item_type_weapon and not(is_mech_weapon(tmp_l_hand)) then begin
       display_msg("Left hand");
       pid_to_create:=obj_pid(tmp_l_hand);
       rm_obj_from_inven(self_obj, tmp_l_hand);
       add_obj_to_inven(self_obj, create_object(pid_to_create, tile_num(self_obj), elevation(self_obj)));      
   end      
end



PS: А управлять характеристиками из скрипта оружия никто и не собирался. Для этого есть скрипт obj_dude.

-----
Scio me nihil scire

Отправлено: 12:00 - 30 Июня, 2005 | ИСПРАВЛЕНО: Mynah - 14:31 - 30 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:
Серьёзно что ли? Вообще-то наоборот.

Абсолютно серьёзно. Твой код не работает. Точнее, он не работает как надо. И вот почему. Ты рассуждаешь так: у нас две руки, в одной из них есть пушка, из которой мы и стреляем. Ну значит мы сейчас посмотрим, что у нас там в руках, найдём пушку и подменим её на другую. Ну или ещё чего сделаем. И-рун-да, уж прости. Во-первых, у меня может быть две пушки в руках, и фих твой скрипт поймёт, из какой я только что стреляла. Портить сразу обе? Хорошенькое решение . Более того, у меня в руке может быть пушка, но я ведь могу и ногой ударить. И пушка получит повреждения? Гуд, зерр гуд . Точно та же причина не позволит тебе менять характеристики Чузена из какого бы то ни было скрипта.

Ну и на сладкое. У неписей активной рукой считается левая. Анимация меняется при помещении оружия именно в эту руку, подозреваю, что wield_obj помещает оружие туда же. Но это не повод считать леворуким Чузена. А среди доступных нам опкодов, повторюсь, нет опкода, дающего указатель на предмет в активной руке. Нету. Не завезли. Или моль похавала.

Отправлено: 12:51 - 30 Июня, 2005
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

2Wasteland Ghost:
Вот этот код:
Цитата:

 variable zzzz;
 variable zzzz2;
 zzzz:=critter_inven_obj(self_obj, INVEN_TYPE_LEFT_HAND);
 zzzz2:=critter_inven_obj(self_obj, INVEN_TYPE_RIGHT_HAND);  
 
 display_msg("Left hand pid is: "+obj_pid(zzzz));
 display_msg("right hand pid is: "+obj_pid(zzzz2));  


вставь в critter_p_proc чуза, потом возьми в руки два оружия и любуйся на своё поражение.
Указатель можно получить только на предмет в активной руке. Вдобавок, учитывая это, можно определить - которая из рук сейчас актвна.
А мой код работает. Не надо его называет И-рун-дой, пожалуйста.

PS: Набросал скрипт поломки оружия. Надо кому-нибудь?

-----
Scio me nihil scire

Отправлено: 13:53 - 30 Июня, 2005
Sam Laury
Пользователь

Откуда: Обнинск
Регистрация: Июнь 2005

Всего: 13 сообщений

Цитата:

Во-первых, у меня может быть две пушки в руках, и фих твой скрипт поймёт, из какой я только что стреляла. Портить сразу обе? Хорошенькое решение


А зачем ему понимать из какой именно стреляли? Стереть любую из них наугад, и выдать сообщение, что снаряжению пришел конец. Мне лично не нужна математическая точность при учете износа. Поломки вполне можно считать случайным процессом. Даже свежеотремонтированные вещи могут отдать концы очень быстро, если в процессе ремонта была допущена ошибка. Я хочу создать в игре какой-нибудь механизм, который уравняет два потока стволов: входящих в игровое поле и выходящих из него.
Цитата:

Вы не можете использовать оружие.Причина : оружие неразблокировано


Это уже слишком, так как в самоделки таких систем ни кто не ставит. А идея про то, что оружее сначала надо исследовать (типа как в Дьябло "определить") , а уже потом идти всех гасить это очень неплохо.


(Добавление от 14:17 - 30 Июня, 2005.)


Цитата:

Набросал скрипт поломки оружия. Надо кому-нибудь?


Ask?? Естественно. Кидай на мыло (Alexpr11@yandex.ru), или пости сюда на форум.

З.Ы. Комментарии приветствуются.

Отправлено: 14:08 - 30 Июня, 2005
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

Цитата:

Ask?? Естественно. Кидай на мыло (Alexpr11@yandex.ru), или пости сюда на форум.


Это не полноценный скрипт. Это алгоритм. Там ещё нужно делать привязку к PID'ам и GVAR'ам. Я сам этим заниматься не хочу.
http://avega.nightmail.ru/obj_dude.zip

-----
Scio me nihil scire

Отправлено: 14:54 - 30 Июня, 2005
Sam Laury
Пользователь

Откуда: Обнинск
Регистрация: Июнь 2005

Всего: 13 сообщений

Спасыба

Отправлено: 15:00 - 30 Июня, 2005 | ИСПРАВЛЕНО: Sam Laury - 15:03 - 30 Июня, 2005
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 ] Все собщения


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