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

 
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

Оно самое, все такие надписи обобщаются словом диалоги или msg. У вас левая корпорация, а значит, что у вас все msg файлы написаны в кодировке от левой корпорации, а вы пишите в кодировке от dos cp866.
Цитата:

Ссылочку напиши где че мне прочитать и если надо то укажи ссылки на утилиты для исправления моей головной боли.


Мда.. лень топик перечитывать? Выхода два: либо создавать тексты для левой корпорации, либо поменять свой перевод на Фаргуса. Хм.. мне тоже лень прямые ссылки давать , здесь найдешь все что нужно.


(Добавление от 0:54 - 8 Марта, 2005.)


Уж коли запостил.. никто не знает способа создания макроса или процедуры, в котором можно было бы указывать разное количество параметров?

Самая простая задача: есть N значений, из них требуется выбрать рандомно одно. N может меняться, однако не хотелось бы создавать sup{N} процедур.

-----
hit me, nail me, make me god

Отправлено: 0:47 - 8 Марта, 2005
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

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

И Фаргусовская, и ЛевКорповская кодировки - по сути есть DOS кодировка, только у Фаргуса всместо Х ставится Ё (если не ошибаюсь), а у ЛевКорпа - точно сказать не могу, но вроде  полностью совпадает с DOSом.
Соответсвенно, нужен редактор, поддерживающий эту кодировку. Сам я привык использовать Bred, а в Блокноте достаточно поставить шрифт Terminal.
А там, где указал Alan, я ничего толкового по этому поводу не нашел ;))).

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

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

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

2YikxX
По поводу указателя по ПИДу. Получать его через tile_contains слишком муторно. Но можно и схитрить ;). Сулика на карте изначально нет. Попасть туда он может лишь как сопартиец. А это означает, что party_member_obj(PID_SULIK) будет возвращать верный указатель... который надо будет получить и запомнить при заходе на карту. Но этот способ плохой. Одноразовый. Имхо, лучше завести мвару, в которую Сулик будет писать self_obj каждый раз при заходе на нужную карту. Ну а дальше - дело техники: проверить принадлежность объекта прямоугольнику...

Отправлено: 12:45 - 10 Марта, 2005
YikxX
Пользователь

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

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

Спасибо, будем пробовать.

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

Отправлено: 13:20 - 10 Марта, 2005
ROCK
Пользователь

Откуда: г.Коломна
Регистрация: Февр. 2005

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

Привет всем!
Кстати проблему с переводом в Левой Корпорации я решил так-воспользовался двумя прогами:1)AkelPad(этот текстовый редактор устанавливается с Total Commander 6.50 PowerPack)он очень удобный и причем он поддерживает кодировку DOS;2)COOLer-прога сделана для того чтобы прегонять текст редактированный в кодировку от Левой Корпорации.
----------------------------------
Теперь у меня есть следующая проблемка в моде который я перевел на русский-мой герой(Нарг) говорит с персонажем(Клинт)-и Клинт предлагает помощь-и если отказаться от его помощи,то больше он не станет говорить с моим героем,а всего лишь Клинт будет приветствовать моего героя(т.е. просто над головой Клинта будет написанно-"Привет,Избранный" ).
Как исправить эту недоделочку(надо сделать так,чтобы после отказа можно было опять говорить с Клинтом)!!!
------------------
Помогите!
Заранее спасибо!

(Отредактировал(а) ROCK - 11:41 - 13 Марта, 2005)

Отправлено: 11:39 - 13 Марта, 2005
tracktor
Пользователь

Откуда: Москва
Регистрация: Март 2004

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

Цитата:
Quote: from ROCK on 11:39 - 13 Марта, 2005
Привет всем!
Кстати проблему с переводом в Левой Корпорации я решил так-воспользовался двумя прогами:1)AkelPad(этот текстовый редактор устанавливается с Total Commander 6.50 PowerPack)он очень удобный и причем он поддерживает кодировку DOS;2)COOLer-прога сделана для того чтобы прегонять текст редактированный в кодировку от Левой Корпорации.
----------------------------------
Теперь у меня есть следующая проблемка в моде который я перевел на русский-мой герой(Нарг) говорит с персонажем(Клинт)-и Клинт предлагает помощь-и если отказаться от его помощи,то больше он не станет говорить с моим героем,а всего лишь Клинт будет приветствовать моего героя(т.е. просто над головой Клинта будет написанно-"Привет,Избранный" ).
Как исправить эту недоделочку(надо сделать так,чтобы после отказа можно было опять говорить с Клинтом)!!!
------------------
Помогите!
Заранее спасибо!

(Отредактировал(а) ROCK - 11:41 - 13 Марта, 2005)


Хм... По моему, это не недоделка, а специально сделанная фича.
Глянь в talk_p_proc, там болкировка какая-то должна быть.

Отправлено: 16:16 - 13 Марта, 2005
ROCK
Пользователь

Откуда: г.Коломна
Регистрация: Февр. 2005

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

Так нашел я вот следующее:
-------------------------------------------------------
procedure talk_p_proc
begin
 variable LVar1 := 0;
 variable LVar2 := 0;
 variable LVar3 := 0;
 variable LVar4 := 0;

 if (op_local_var(3) == 1) then
 begin
   op_start_gdialog(751, op_self_obj(), 4, -1, -1);
   maybe_start_dialog();
   call Node010();
   maybe_close_dialog();
   maybe_op_end_gdialog();
 end
 else if (op_local_var(1) == 0) then
 begin
   op_start_gdialog(751, op_self_obj(), 4, -1, -1);
   maybe_start_dialog();
   call Node001();
   maybe_close_dialog();
   maybe_op_end_gdialog();
 end
 else if (op_local_var(1) == 1) then
 begin
   LVar1 := op_critter_inven_obj(op_self_obj(), 0);
   op_start_gdialog(751, op_self_obj(), 4, -1, -1);
   maybe_start_dialog();
   call Node005();
   maybe_close_dialog();
   maybe_op_end_gdialog();

   if (op_critter_inven_obj(op_self_obj(), 0) != LVar1) then
   begin
     if (op_critter_inven_obj(op_self_obj(), 0) == 0) then
       LVar1 := op_create_object(16777217, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 1) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 379)) then
       LVar1 := op_create_object(16777342, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 232) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 14) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 3)) then
       LVar1 := op_create_object(16777338, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 349) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 348)) then
       LVar1 := op_create_object(16777331, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 240) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 380) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 2)) then
       LVar1 := op_create_object(16777344, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 74) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 265)) then
       LVar1 := op_create_object(16777346, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 239) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 17) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 381)) then
       LVar1 := op_create_object(16777348, 0, 0, 751);
     else if ((op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 524) or (op_obj_pid(op_critter_inven_obj(op_self_obj(), 0)) == 113)) then
       LVar1 := op_create_object(16777700, 0, 0, 751);

     LVar2 := op_critter_inven_obj(op_self_obj(), 1);
     LVar3 := op_critter_inven_obj(op_self_obj(), 0);
     LVar4 := op_get_critter_stat(op_self_obj(), 35);
     op_critter_heal(LVar1, LVar4);
     op_set_obj_invisibility(op_self_obj(), 1);
     op_move_obj_inven_to_obj(op_self_obj(), LVar1);
     asm_expr(op_critter_attempt_placement(LVar1, op_tile_num(op_self_obj()), op_elevation(op_self_obj())));
     op_anim(LVar1, 1000, op_has_trait(1, op_self_obj(), 10));

     if (op_local_var(3) != 1) then
     begin
       op_critter_add_trait(LVar1, 1, 6, 0);
       op_critter_add_trait(LVar1, 1, 5, op_has_trait(1, op_self_obj(), 5));
       op_party_add(LVar1);
       op_set_global_var(40, op_local_var(1));
       op_set_global_var(41, op_local_var(3));
       op_set_global_var(42, op_local_var(6));

       if (LVar2 != 0) then
         op_wield_obj_critter(LVar1, LVar2);

       if (LVar3 != 0) then
         op_wield_obj_critter(LVar1, LVar3);

       op_party_remove(op_self_obj());
       op_destroy_object(op_self_obj());
       op_add_timer_event(LVar1, op_random(5, 20) * 10, 1);
     end
   end
 end
 else
   op_float_msg(op_self_obj(), "Привет Избранный", 9);
end
----------------------------------
И че тут тогда надо подправить?
Подскажите!
Заранее спасибо!

Отправлено: 18:08 - 13 Марта, 2005
tracktor
Пользователь

Откуда: Москва
Регистрация: Март 2004

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

Мда...
Видать ты с программированием вообще не знаком...
Надо наскока я понимаю убрать вот это:

if (op_local_var(3) == 1) then
begin

это:

end
else

и это

else
  op_float_msg(op_self_obj(), "Привет Избранный", 9);

Ну мож ещё чего подправить если работать не будет.

Отправлено: 20:35 - 13 Марта, 2005
ROCK
Пользователь

Откуда: г.Коломна
Регистрация: Февр. 2005

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

Я как ты сказал удалил строки:
------------------------------------------
if (op_local_var(3) == 1) then
begin

это:

end
else

и это

else
 op_float_msg(op_self_obj(), "Привет Избранный", 9);
-----------------------------------------------------------------
Теперь появилась следующая проблема-
Когда я говорю с Клинтом и отказываюсь от его помощи,то заканчивается диалог(так должно быть)-И ПОТОМ:сразуже появляется этот же диалог второй раз!
А если я соглашаюсь с ним,то он со мной идет-но как с ним начну говорить,то опять он предлагает мне свою помощь!
--------------------------------------------------------------------
Как это исправить?
Подскажите!
Заранее спасибо!

Отправлено: 21:26 - 13 Марта, 2005
tracktor
Пользователь

Откуда: Москва
Регистрация: Март 2004

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

На самом деле начинать программировать со скриптов fallout'а есть не очень правильно, потому что и учебников по этому делу почти нет, и на отладку скриптов времени достаточно уходит.
Я бы посоветовал тебе сначала научиться азам программирования на паскале или бейсике, а потом вернуться к скриптам.
Ну или хотя бы почитать повнимательнее FScript-howto.
Или, наконец, начинать с написания своих простейших скриптов, а не с разгребания чужих сложных.

Отправлено: 12:44 - 14 Марта, 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