• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Одна непись на n-ное кол-во точек

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150
Всем привет! Надо настроить непись так, чтобы она стояла на той точке, на которой ему указал startup.d. Распорядок дня очень мешает. Пытался без распорядка дня - непись не разговаривает и на оружие не реагирует.

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

Как это можно реализовать?

P.S. От неписи требуется лишь стоять в заданной точке.
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
По сути надо, чтобы одна и та же непись была одновременно в разных точках.

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

Мільтен

Участник форума
Регистрация
27 Июн 2008
Сообщения
862
Благодарности
427
Баллы
265
*???**???*

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

P.S. От неписи требуется лишь стоять в заданной точке.

А можно как-то более внятно объяснить, чего ты хочешь добиться? Я вот ничего не понял...
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.800
Баллы
995
По сути надо, чтобы одна и та же непись была одновременно в разных точках.
Как это можно реализовать?
Копируем инстанцию непеси, в которой прописывае номера типа: _01, _02 и т.д..
Ну а в стартапе или где еще по событию вставляем их в мир.
С распорядком для них и их Диалогами, уже сам смотри будут они разнится или нет... ::)
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Всем привет! Надо настроить непись так, чтобы она стояла на той точке, на которой ему указал startup.d. Распорядок дня очень мешает. Пытался без распорядка дня - непись не разговаривает и на оружие не реагирует.

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

Как это можно реализовать?

P.S. От неписи требуется лишь стоять в заданной точке.

А что мешает сделать несколько клонов одного непися и разместить на требуемых вейпойнтах?
И чем это вам так распорядок не угодил?
И вообще-то, стартап это точка начала игры для Главного Героя. Все остальные ютятся на веях. :)
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.800
Баллы
995
hell9999,
И вообще-то, стартап это точка начала игры для Главного Героя.
Он наверное про файл стартап в скриптах говорил... ::)
 

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Есть непись. Надо ее поставить одновременно на несколько вейпоинтов.


Делаешь клонов с разными id и разными instance.

А без распорядка, думаю, ничего не выйдет. Там задаются функции состояния, а в них задается реакция (восприятия)
 

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150
А без распорядка, думаю, ничего не выйдет. Там задаются функции состояния, а в них задается реакция (восприятия)

А как тогда реализованы волки и овцы? Ведь у них нет распорядка, но волки атакуют.

Bump:
Код:
instance YWolf(Mst_Default_Wolf)
{
	level = 3;
	name[0] = "Молодой волк";
	attribute[ATR_STRENGTH] = 10;
	attribute[ATR_DEXTERITY] = 10;
	attribute[ATR_HITPOINTS_MAX] = 20;
	attribute[ATR_HITPOINTS] = 20;
	protection[PROT_BLUNT] = 10;
	protection[PROT_EDGE] = 10;
	protection[PROT_POINT] = 0;
	protection[PROT_FIRE] = 10;
	protection[PROT_FLY] = 10;
	fight_tactic = FAI_MONSTER_COWARD;
	B_SetVisuals_Wolf();
	Npc_SetToFistMode(self);
	CreateInvItems(self,ItFoMuttonRaw,1);
};

Почему такое с людями не прокатывает?
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Не знаю. М. б. из-за того, что из разных классов наследуют. А эти классы реализованы по-разному.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Почему такое с людями не прокатывает?
потому что надо грызть, грызть и еще раз грызть фундамент наук:
instance YWolf(Mst_Default_Wolf)
Смотрим прототип prototype Mst_Default_Wolf(C_Npc)
и видим:
start_aistate = ZS_MM_AllScheduler;
aivar[AIV_MM_RoamStart] = OnlyRoutine;
вот это - и есть распорядок.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.800
Баллы
995
Berlioz, Почему нет, есть у них все, только их распорядок загнан в ZS-функции состояния и исполняется там, а разница вся в гильдиях. Распорядок в том виде как он реализован у НПС-людей есть только у человеческой гильдии, все прочие используют распорядок через состояния.
Кстати, по-моему у бандитов в аддоне, также как и у монстров, распорядок реализован через функции состояния. Смотрите оригинал как там реализовано и делайте по аналогии если очень так нужно. Большинство примеров всегда можно там найти, если подходить к делу с умом. ;)


kraw,
М. б. из-за того, что из разных классов наследуют.
Класс у прототипов людей и монстров один - (C_Npc). ;)
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Ну так YWolfнаследует базовый класс не напрямую, а через Mst_Default_Wolf
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.800
Баллы
995
kraw, YWolf - это инстанция, производная от прототипа Mst_Default_Wolf.
И конечно она не может пользовать его напрямую, а вот сам прототип - Mst_Default_Wolf, юзает класс напрямую. :)
 

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150
Я так понимаю, что придется делать каждую непись отдельно.
Есть мысль, но не знаю как ее реализовать, ибо писал раньше лишь на Delphi и Shell(оболочка для Unix).

Мысль следующая: загоняем текст в переменную(хар-ка неписи), а распорядок дня пишем отдельно. Эту переменную ставим в непися(переменная NPC_ATTR).

Например:

Код:
name = "Охранник"; 
 
guild = GIL_PAL; 
 
npctype = NpcType_MAIN; 
 
level = 25; 
 
voice = 0; 
 
id = 1000; 
 

attribute[ATR_STRENGTH] = 170; 
 
attribute[ATR_DEXTERITY] = 150; 
 
attribute[ATR_MANA_MAX] = 110; 
 
attribute[ATR_MANA] = 110; 
 
attribute[ATR_HITPOINTS_MAX] = 200; 
 
attribute[ATR_HITPOINTS] = 200; 


Mdl_SetModelFatness (self, 0); 
 
Mdl_ApplyOverlayMds (self, "Humans_Relaxed.mds"); 
 
B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_NormalBart03, BodyTex_N, ITAR_PAL_H); 
 
 
HitChance[NPC_TALENT_1H] = 60; 
HitChance[NPC_TALENT_2H] = 50; 
HitChance[NPC_TALENT_BOW] = 60; 
HitChance[NPC_TALENT_CROSSBOW] = 30; 
 
 
CreateInvItems (self, itke_jailkey, 1); 
 
EquipItem (self, ItMw_Schwert4); 
 
 
 
senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR; 
 
senses_range = 2000; 
 
 
fight_tactic = FAI_HUMAN_MASTER;

А потом в скрипте пишем что-то вроде:

Код:
instance PAL_1000_PROT (Npc_Default) 
 
{ 
NPC_ATTR();

daily_routine = Rtn_Start_1000;

func void Rtn_Start_1000() 
 
{ 
 
TA_Stand_WP (8,0,22,0,"WP"); 
 
TA_Stand_WP (22,0,8,0,"WP"); 
 
};

Как это можно сделать?
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
М. б. я за последнее время сильно поглупел, но я ничего не понял. Есть же прекрасные "туторы", в которых говорится как сделать персонажа. Казалось бы, прочти и сделай как написано. Есть также исходники как Г1, так и Г2а. Можно посмотреть там. Вместо этого человек хочет чего-то непонятного. Приводит 2 фрагмента кода, причем с непарными скобками. Чего хочет добиться - не ясно. Почему не хочет воспользоваться стандартным способом - неизвестно.
 

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150
М. б. я за последнее время сильно поглупел, но я ничего не понял.

Я не знаю как в Cи объявить переменную, в которой есть текст с переносами на следующую строку. Скрипты то Си-образные

P.S. В Deplhi это делается при помощи "+ #13", на Shell при помощи "\"
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
А я не знаю как косинус сделать равным двум. Ну никак этого не могу представить! Но, почему-то, это ничуть не мешает мне создавать персонажей. М. б. потому, что я не пытаюсь изобремать велосипед, тем более с квадратными колесами? М. б. потому, что я просто, в свое время, прочел тот самый "тутор" по созданию персонажей?
 

Berlioz

Участник форума
Регистрация
2 Июн 2011
Сообщения
27
Благодарности
0
Баллы
150
Напиши пример в личку, если не трудно, а то я совсем запутался - как реализовать задуманное.

P.S. При объявлении переменной перенос с помощью \n и предворением вторых кавычек с помощью знака "\" не прокатывает - компилятор Vam'а ругается:

 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
kraw написал(а):
М. б. потому, что я не пытаюсь изобремать велосипед, тем более с квадратными колесами?
С квадратным рулем - рулить проще, есть за что взяться. :D
И зачем Керракс голову ломает над движком, все же намного проще: просто прикрутил бы грамматику и синтаксис из другого языка наплевав на правила оригинала.
 
Сверху Снизу