Семь Футов под Килем
Форма входа
 
Приветствуем тебя, корсар Юнга!

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Логин:
Пароль:


Купить игры
 



Чат
 
500


Статистика
 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Addon Maker. Урок № 2. Добавить НПС-игрока
Addon Maker. Урок № 2. Добавить НПС-игрока
korsary4Дата: Среда, 31.03.2010, 15:59 | Сообщение # 21
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (misha95)
он лежит в "PROGRAM\dialogs\russian\Fergus_Bolter.c".

путь неверный!
нужно кинуть файл вот в такой каталог: "PROGRAM\dialogs\russian\Quest\MainLine\Fergus_Bolter.c".

Quote (misha95)
и выводится ошибка, имя - Жиль Веруаенн

напиши по русски имя и фамилию, может не воспринимает по английски, хотя вряд ли.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
СоловейДата: Пятница, 23.04.2010, 13:50 | Сообщение # 22
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
Люди помогите плиз я хотел сделать себе на необитаемом острове "Теркс" чтобы там стоял в бухте"южный" дэви джонс модель есть анимация есть, код написал, открывал бета тест игры и смотрел локаторы и координаты бухты но когда запускаю игру она при загрузке меню вылетает в ошибкой движка подскажите плиз что я не так делаю как создать перса на необитаемом острове и что может привести к crashу заранее спасибо. -give_rose- вот код: makeref(ch,Characters[n]); //Дейви Джонс
ch.name = "Дейви";
ch.lastname = "Джонс";
ch.id = "Davy_Jones";
ch.model = "DavyJones";
ch.model.animation = "man3";
ch.sex = "man"
ch.location = "shore57";
ch.location.group = "goto";
ch.location.locator = "goto3";
GiveItem2Character(ch,GUN_COMMON);
ch.equip.gun = GUN_COMMON ;
GiveItem2Character(ch, "BLADE_LONG");
ch.equip.blade = "BLADE_LONG";
ch.nation = PIRATE;
ch.rank = 35;
ch.reputation = "1";
SetSelfSkill(ch, 100, 100, 100, 100, 100);
SetShipSkill(ch, 100, 100, 100, 100, 100, 100, 100, 100, 100);
LAi_NoRebirthDisable(ch); //
LAi_SetLoginTime(ch, 0.0, 24.0);
LAi_SetHP(ch, 666.0, 666.0);
LAi_SetImmortal(ch, true);
LAi_group_MoveCharacter(ch, "PIRATE_CITIZENS");
LAi_SetCitizenType(ch); //

n = n + 1;

Добавлено (23.04.2010, 13:50)
---------------------------------------------
Подскажите ещё плиз как сделать так чтобы когда я взял квест у деви джонса допустим убить одно человека и когда я его убью и возьму у него допустим саблю то когда возвращаемся к деви у него появлялся диалог типа "ну что достал саблю?"ну и т.д мы отвечаем "да вот" treas1


Думаешь это разумно? Затевать бой с пиратом.





Сообщение отредактировал Соловей - Пятница, 23.04.2010, 11:34
korsary4Дата: Пятница, 23.04.2010, 15:42 | Сообщение # 23
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (Соловей)
вот код

где этот код прописывал?



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
СоловейДата: Пятница, 23.04.2010, 15:53 | Сообщение # 24
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
в OTHER

Добавлено (23.04.2010, 15:53)
---------------------------------------------
а если допустим в лавеге прописываю все пашет


Думаешь это разумно? Затевать бой с пиратом.



korsary4Дата: Пятница, 23.04.2010, 15:56 | Сообщение # 25
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Соловей,
содержание файла Other.c похоже на это? Обрати внимание на различного рода скобки и .т.п. ничего случайно не удалил.

Code
void CreateOtherCharacters()
{
  ref ch;
   
makeref(ch,Characters[n]); //Дейви Джонс
ch.name = "Дейви";
ch.lastname = "Джонс";
ch.id = "Davy_Jones";
ch.model = "DavyJones";
ch.model.animation = "man3";
ch.sex = "man"
ch.location = "shore57";
ch.location.group = "goto";
ch.location.locator = "goto3";
GiveItem2Character(ch,GUN_COMMON);
ch.equip.gun = GUN_COMMON ;
GiveItem2Character(ch, "BLADE_LONG");
ch.equip.blade = "BLADE_LONG";
ch.nation = PIRATE;
ch.rank = 35;
ch.reputation = "1";
SetSelfSkill(ch, 100, 100, 100, 100, 100);
SetShipSkill(ch, 100, 100, 100, 100, 100, 100, 100, 100, 100);
LAi_NoRebirthDisable(ch); //
LAi_SetLoginTime(ch, 0.0, 24.0);
LAi_SetHP(ch, 666.0, 666.0);
LAi_SetImmortal(ch, true);
LAi_group_MoveCharacter(ch, "PIRATE_CITIZENS");
LAi_SetCitizenType(ch); //

n = n + 1;

}



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
СоловейДата: Пятница, 23.04.2010, 16:03 | Сообщение # 26
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
сейчас попробую!

Добавлено (23.04.2010, 16:02)
---------------------------------------------
вот опять игра крашится что может к этому приводить?

Добавлено (23.04.2010, 16:03)
---------------------------------------------
я проверял помоему это из за локатора ch.locator shore57

Добавлено (23.04.2010, 16:03)
---------------------------------------------
как проверить как точно называется южный берег на терксе?


Думаешь это разумно? Затевать бой с пиратом.



korsary4Дата: Пятница, 23.04.2010, 16:20 | Сообщение # 27
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Соловей, мне кажется, это все из за файла other. Пропиши в StoryCharacters.c

Вот мой результат, когда я добавил в StoryCharacters.c:


Прикрепления: 6111831.jpg(550.5 Kb)



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
СоловейДата: Пятница, 23.04.2010, 16:48 | Сообщение # 28
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
пришлось ГПК переустановить я случайно все в other удалил и игра крашилась=) спс большое за помощь все пошло только можеш помоч с;как сделать так чтобы когда я взял квест у деви джонса допустим убить одно человека и когда я его убью и возьму у него допустим саблю то когда возвращаемся к деви у него появлялся диалог типа "ну что достал саблю?"ну и т.д мы отвечаем "да вот"

Думаешь это разумно? Затевать бой с пиратом.





Сообщение отредактировал Соловей - Пятница, 23.04.2010, 16:51
Korsar2010Дата: Пятница, 23.04.2010, 17:13 | Сообщение # 29
Капитан I ранга
Группа: Корсар
Сообщений: 501
Награды: 18
Репутация: 32
Статус: В открытом море
Соловей дэви джонс не может стоять на земли посматри пкм

Внутри игровая поддержка по Корсары: Город Потерянных Кораблей
--------------------------------------------------------------------------------------------------------
СоловейДата: Пятница, 23.04.2010, 17:20 | Сообщение # 30
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
да смотрел не бойся просто он уже не капитан летучего голандца он лишился бессмертия

Думаешь это разумно? Затевать бой с пиратом.



korsary4Дата: Воскресенье, 25.04.2010, 00:54 | Сообщение # 31
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (Соловей)
как сделать так чтобы когда я взял квест у деви джонса допустим убить одно человека и когда я его убью и возьму у него допустим саблю то когда возвращаемся к деви у него появлялся диалог типа "ну что достал саблю?"ну и т.д мы отвечаем "да вот"

1.Создать файл диалога для Дейви.
содержание примерно такого плана.

Code

void ProcessDialogEvent()
{
        ref NPChar;
        aref Link, NextDiag;

        DeleteAttribute(&Dialog,"Links");

        makeref(NPChar,CharacterRef);
        makearef(Link, Dialog.Links);
        makearef(NextDiag, NPChar.Dialog);

        switch(Dialog.CurrentNode)
        {
         // -----------------------------------Диалог первый - первая встреча
                
         case "First time":
          dialog.text = "У меня есть для тебя задание! Нужно убить одного человека.";          
          link.l1 = ""+ GetFullName(NPchar)+", никаких проблем. Где он живет?";
          link.l1.go = "dialog1";
         break;

         case "dialog1":
NextDiag.TempNode = "delo2";
          dialog.text = "Он находится там то.... И принеси его саблю мне.";          
          link.l1 = "Хорошо!";
          link.l1.go = "Exit_dialog1";
         break;

         case "Exit_dialog1":
          NextDiag.CurrentNode = NextDiag.TempNode;
          DialogExit();
                 
                         //Здесь по хорошему, даже еще в кейсе dialog1 нужно вызвать квест, но сделаем по другому, все вызовем в диалоге прямо.      
//Ставим другого НПС где-нибудь
          sld = CharacterFromID("Jedvard_Defo");
          LAI_SetStayType(sld);
          ChangeCharacterAddressGroup(sld,"BasTer_town", "goto", "goto1");        
                 
         break;

//ветка диалога после выполнения квеста и проверка что сабля у ГГ
case "delo2":
NextDiag.TempNode = "delo2";
        if (GetCharacterItem(Pchar, "blade1")>=1)
        {
          dialog.text = "Ты достал саблю?";          
          link.l1 = "Да!";
          link.l1.go = "Exit";
        }
else
        {
          dialog.text = "Ты достал саблю?";          
          link.l1 = "Я над этим работаю.";
          link.l1.go = "Exit";

         }
break;        
                
         case "Exit":
          NextDiag.CurrentNode = NextDiag.TempNode;
          DialogExit();
                 
                 
         break;
        }
}

2. Объяснения

Code
sld = CharacterFromID("Jedvard_Defo");
          LAI_SetStayType(sld);
          ChangeCharacterAddressGroup(sld,"BasTer_town", "goto", "goto1");

С помощью этого действия мы поставили НПС с id Jedvard_Defo в город Бас-Тер.

Quote (korsary4)
NextDiag.TempNode = "delo2";

Поставить ноду в диалоге.

Code
if (GetCharacterItem(Pchar, "blade1")>=1)
        {
          dialog.text = "Ты достал саблю?";          
          link.l1 = "Да!";
          link.l1.go = "Exit";
        }
else
        {
          dialog.text = "Ты достал саблю?";          
          link.l1 = "Я над этим работаю.";
          link.l1.go = "Exit";

         }

Проверка наличия предмета с определенным id и в нужном количестве, и варианты ответа.

Code
if (GetCharacterItem(Pchar, "blade1")>=1)

blade1 - id предмета, можно изменять на любой другой id, прописанный в игре.

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



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
СоловейДата: Воскресенье, 25.04.2010, 00:58 | Сообщение # 32
Мичман
Группа: Корсар
Сообщений: 73
Награды: 4
Репутация: 9
Статус: В открытом море
Thank you! -give_rose- me

Думаешь это разумно? Затевать бой с пиратом.



diversantДата: Воскресенье, 16.05.2010, 18:23 | Сообщение # 33
Капитан II ранга
Группа: Корсар
Сообщений: 372
Награды: 6
Репутация: 5
Статус: В открытом море
а можно сделать квест чтоб жемчужина не на гпк была а допустим у барбосы ее забрать можно было?

Добавлено (16.05.2010, 04:19)
---------------------------------------------
а то я Воробьем играю в гпк не как плыть

Добавлено (16.05.2010, 11:33)
---------------------------------------------
и пожалуйста обьесни про ch.id по подробней я барбосу хочу впихнуть в таверну тортуги чтоб он бухал сидел что туда вписывать нужно зарание спасибо -give_rose-

Добавлено (16.05.2010, 11:55)
---------------------------------------------
про него я разобрался ch.id , подскажи как барбосу в таверну тортуги закинуть

Добавлено (16.05.2010, 18:23)
---------------------------------------------
korsary4, вот эти строчки понять не могу что к чему ch.location = "shore57";
ch.location.group = "goto";
ch.location.locator = "goto3"; пытался неполучилось в них разобраца


Лучше иметь повернутую психику, безумные идеи, быть непонятным и немного странным, чем не отличаться от тумбочки, что стоит возле постели....
korsary4Дата: Воскресенье, 16.05.2010, 22:13 | Сообщение # 34
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (diversant)
вот эти строчки понять не могу что к чему ch.location = "shore57";
ch.location.group = "goto";
ch.location.locator = "goto3"; пытался неполучилось в них разобраца

В первом посте все описал:
Quote (korsary4)
ch.location – id локации, где будет находится НПС.
ch.location.group - групп локаторов немного, goto, sit, rld, Merchant, barmen, soldiers, patrol, quest и другие…
ch.location.locator – локатор, чаще всего это имя группы локатора и цифра, например , goto2, sit5 и т.п.

Quote (diversant)
подскажи как барбосу в таверну тортуги закинуть

В ch.location пишешь Tortuga_tavern
В ch.location.group и ch.location.locator пишешь имена нужного локатора в таверне.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
diversantДата: Воскресенье, 16.05.2010, 22:42 | Сообщение # 35
Капитан II ранга
Группа: Корсар
Сообщений: 372
Награды: 6
Репутация: 5
Статус: В открытом море
korsary4, чтоб квест сделать "забрать жемчужину(корабль) у барбосы там много старатца нада?

Лучше иметь повернутую психику, безумные идеи, быть непонятным и немного странным, чем не отличаться от тумбочки, что стоит возле постели....
korsary4Дата: Воскресенье, 16.05.2010, 22:48 | Сообщение # 36
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (diversant)
korsary4, чтоб квест сделать "забрать жемчужину(корабль) у барбосы там много старатца нада?

это чтобы любой квест сделать, нужно стараться и знать код(Структуру скриптов, команды и т.п.)



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
diversantДата: Воскресенье, 16.05.2010, 23:05 | Сообщение # 37
Капитан II ранга
Группа: Корсар
Сообщений: 372
Награды: 6
Репутация: 5
Статус: В открытом море
а ты всегда так пользывателям помогаешь? korsary4,
----------

ну вмысле отвечаешь тому кто чего не понял


Лучше иметь повернутую психику, безумные идеи, быть непонятным и немного странным, чем не отличаться от тумбочки, что стоит возле постели....
korsary4Дата: Воскресенье, 16.05.2010, 23:16 | Сообщение # 38
Адмирал
Группа: Администратор
Сообщений: 5200
Награды: 486
Репутация: 1871
Статус: В открытом море
Quote (diversant)
ну вмысле отвечаешь тому кто чего не понял

Когда время есть отвечаю, иногда успеваю только вопрос прочесть, но потом все равно позже отвечу.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
diversantДата: Воскресенье, 16.05.2010, 23:19 | Сообщение # 39
Капитан II ранга
Группа: Корсар
Сообщений: 372
Награды: 6
Репутация: 5
Статус: В открытом море
korsary4, ну тогда у меня все получитца я так думаю

Добавлено (16.05.2010, 23:19)
---------------------------------------------
я кстати барбосу в таверну запихнул теперь с диологом мазга кампасирую по сложней там все


Лучше иметь повернутую психику, безумные идеи, быть непонятным и немного странным, чем не отличаться от тумбочки, что стоит возле постели....
BlackJackДата: Вторник, 18.05.2010, 18:17 | Сообщение # 40
Пороховая обезьяна
Группа: Корсар
Сообщений: 10
Награды: 1
Репутация: 0
Статус: В открытом море
А где писать по русски имя перса?

Добавлено (18.05.2010, 18:17)
---------------------------------------------
А почему имя не запоминается?

Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Addon Maker. Урок № 2. Добавить НПС-игрока
Поиск:

Copyright Pirates-Life.Ru © 2008-2018


Семь Футов под Килем - Бухта Корсаров и Пиратов!