|
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
|
|
|
|