» 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 ] Все собщения

 
Wasteland Ghost
Маленькое Злое Привидение

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

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

Ну и выкинь нойдовский компилер нафиг :).

Гм... Ну давай сюда свои скрипты. И рассказывай, что конкретно делал.

Отправлено: 10:21 - 22 Фев., 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

Скрипт ящика:
...
procedure start;
procedure map_enter_p_proc;
procedure map_update_p_proc;

import variable sf_tanker_bar_box;
...
procedure start
begin
 sf_tanker_bar_box := op_self_obj();
end

procedure map_enter_p_proc
begin
 sf_tanker_bar_box := op_self_obj();
 if (op_metarule(22, 0) == 0) then
 begin
   if (op_local_var(0) < op_game_time()) then
   begin
     restock_amt := op_random(1, 2);
     if (op_obj_is_carrying_obj(op_self_obj(), 71) < restock_amt) then
     begin
... (в общем, тут как я понимаю, идет процесс заполнения ящика конкретными вещами - взято из скрипта ящика для бармена в казино Бишопа)

procedure map_update_p_proc
begin
 sf_tanker_bar_box := op_self_obj();
end

Скрипт карты:
...
export variable i_suze_obj := 0;
export variable i_tgun_table_swap := 0;
export variable i_tgun_merchant := 0;
export variable i_tmer_table_swap := 0;
export variable i_tmer_merchant := 0;
export variable sf_tanker_bar_box := 0;
...
procedure start
begin
 if (inited == 0) then
 begin
   inited := 1;
   i_suze_obj := -1;
   i_tgun_merchant := -1;
   i_tmer_merchant := -1;
 end
end
... (если добавить сюда sf_tanker_bar_box := -1; то игра вылетает, когда по скрипту бармена ему должны вещи добавляться :( )

Скрипт самого бармена:
...
import variable sf_tanker_bar_box;
...
procedure talk_p_proc
begin
 Evil_Critter := 0;
 Slavery_Tolerant := 2;
 Karma_Perception := 10;
 op_set_global_var(37, 0);
 op_set_global_var(38, 0);
 op_set_global_var(39, 0);
 op_set_global_var(40, 0);
...
else if (op_local_var(4) == 0) then
 begin
   op_start_gdialog(1103, op_self_obj(), 4, -1, -1);
   maybe_start_dialog();
   call Node001();
   maybe_close_dialog();
   maybe_op_end_gdialog();
 end
 else
 begin
   op_start_gdialog(1103, op_self_obj(), 4, -1, -1);
   maybe_start_dialog();
   call Node006();
   maybe_close_dialog();
   maybe_op_end_gdialog();
 end
 op_move_obj_inven_to_obj(op_self_obj(), sf_tanker_bar_box);
 op_set_local_var(4, 1);
end
...
procedure Node003
begin
 op_move_obj_inven_to_obj(sf_tanker_bar_box, op_self_obj());
   op_gsay_reply(1103, 113);
 op_giq_option(1, 1103, 115, @NodeBarter, 50);
end
...

В итоге нефига не работает. Ящичек в маппере рисую и скрипт ему вешаю, в scripts.lst скрипт ящика прописываю (# local_vars = 0 ставлю для него).

-----
Обломись! Я подложил туда носок...

Отправлено: 11:51 - 22 Фев., 2005
Wasteland Ghost
Маленькое Злое Привидение

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

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

А зачем ты в скрипте карты что-то инициализируешь? Только ящик должен в ту вару писать "себя".

Отправлено: 14:22 - 22 Фев., 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

В смысле? Про это чтоли?
export variable sf_tanker_bar_box := 0;
Я вроде ничего не инициализирую в скрипте карты.

-----
Обломись! Я подложил туда носок...

Отправлено: 14:31 - 22 Фев., 2005
Wasteland Ghost
Маленькое Злое Привидение

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

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

А это что?

procedure start
begin
if (inited == 0) then
begin
  inited := 1;
  i_suze_obj := -1;
  i_tgun_merchant := -1;
  i_tmer_merchant := -1;
end
end



(Добавление от 15:01 - 22 Фев., 2005.)


Да... SVARы-то у тебя используются в скрипте ящичка, так что не ноль их, а как минимум одна...

Отправлено: 15:00 - 22 Фев., 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

Про свары ясно. А в скрипте карты это переменные торговцев на танкере (оружейника и другой тетки )

-----
Обломись! Я подложил туда носок...

Отправлено: 18:46 - 22 Фев., 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

Новый вопрос.

Почему не работаеа такая конструкция (LVar1 не увеличивается на единицу и т.д.)?

if (op_party_member_obj(16777558) != 0) then
 begin
   if (op_tile_in_tile_rect(16324, 16312, 17924, 17912, op_tile_num(op_party_member_obj(16777558)))) then
   begin
     LVar1 := LVar1 + 1;
     op_critter_damage(op_party_member_obj(16777558), 1000, 0);
   end
 end

Потому, что я оставляю НПС подождать или углы прямоугольника не в той последовательности заданы или еще почему?

-----
Обломись! Я подложил туда носок...

Отправлено: 13:43 - 2 Марта, 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

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

Всё проще :-)
set_local_var( LVar1,get_local_var( LVar1)+1);

Отправлено: 14:43 - 2 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

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

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

... или макрос inc_local_var(LVar1).

Отправлено: 15:48 - 2 Марта, 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

Всем спасибо - я разобрался.
Не работало потому, что я оставлял соратника подождать и он как party_member_obj уже не считался.

Это можно как-то исправить?

-----
Обломись! Я подложил туда носок...

Отправлено: 16:27 - 2 Марта, 2005
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 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