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

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


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
Danila130, Andrey__3010, Kriogener
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Урок № 3. Пишем диалоги персонажам
MythДата: Среда, 29.02.2012, 14:25 | Сообщение # 41
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
korsar01, если я правильно тебя понял, то:



И игра будет выбирать из двух фраз любую. Поясню: кейсы "0" и "1" это части кейса "Skelet2", а не отдельные кейсы.


Myth: Make Your Thought Heard

Сообщение отредактировал Myth - Среда, 29.02.2012, 14:30
korsar01Дата: Среда, 29.02.2012, 15:29 | Сообщение # 42
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Myth, спасибо!
vagaДата: Понедельник, 05.03.2012, 19:32 | Сообщение # 43
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
а как делать что бы после диалога появлялась запись в СЖ и какой небудь предмет. Ещё что бы перед диалогом подошёл к тебе какой небуддь НПС например при входе в дом? OldPirat


За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
mihasДата: Вторник, 06.03.2012, 14:44 | Сообщение # 44
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 2
Репутация: 4
Статус: В открытом море
vaga,
Quote (vaga)
появлялась запись в СЖ

Это было сказано в уроке по кодингу квестов

Quote (vaga)
какой небудь предмет.

GiveItem2Character(pchar, "id предмета");
тоже в уроке №10

Quote (vaga)
Ещё что бы перед диалогом подошёл к тебе какой небуддь НПС например при входе в дом?

при входе в дом, сначала узнай этот локатор.

здесь на примере, в городе Виллемстад, локатор quest1. когда зайдем на него выполнится myquest.
Code
    pchar.quest.quest1.win_condition.l1 = "locator";
      pchar.quest.quest1.win_condition.l1.location = "Villemstad_town";
      pchar.quest.quest1.win_condition.l1.locator_group = "quest"; //группа локатора
      pchar.quest.quest1.win_condition.l1.locator = "quest1";  //название локатора
      pchar.quest.quest1.function = "myquest"; //что выполнять

и в файле reaction_functions.c напишем :
Code

void myquest(string qName) {
LAi_SetActorType(CharacterFromID("ID нпц с кем будем говорить")); //Это если у нпц какойлибо другой тип.
LAi_ActorDialog(CharacterFromID("ID нпц с кем будем говорить"), pchar, "", 5.0, 1.0); }



надеюсь не ошибся. у себя не проверял)




Сообщение отредактировал mihas - Вторник, 06.03.2012, 15:17
vagaДата: Четверг, 15.03.2012, 16:12 | Сообщение # 45
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
Спс) -give_rose-

Добавлено (15.03.2012, 16:12)
---------------------------------------------


Вот смотрите указал файл диалога а при разговоре это.

makeref(ch,Characters[n]); // Джон Кок
ch.name = "Джон";
ch.lastname = "Кок";
ch.id = "SentJons_Kok";
ch.model = "Albermal";
ch.model.animation = "man";
ch.sex = "man";
ch.location = "CommonResidence_2";
ch.location.group = "sit";
ch.location.locator = "sit2";
ch.Dialog.Filename = "Dreik.c";
GiveItem2Character(ch, GUN_COMMON);
ch.equip.gun = GUN_COMMON;
GiveItem2Character(ch, "blade7");
ch.equip.blade = "blade7";
ch.nation = FRANCE;
ch.rank = 46;
ch.reputation = "97";
SetSelfSkill(ch, 95, 95, 95, 95, 95);
SetShipSkill(ch, 90, 90, 90, 90, 90, 90, 90, 90, 90);
LAi_NoRebirthDisable(ch); // воскресть при убиении
LAi_SetSitType(ch); //
LAi_SetLoginTime(ch, 0.0, 24.0);
LAi_SetHP(ch, 500.0, 500.0);
LAi_SetImmortal(ch, true);
ch.greeting = "GrFisherman";
LAi_group_MoveCharacter(ch, "ENGLAND_CITIZENS");
n = n + 1;

Вот указанно, в чём проблемма?



За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
TormoДата: Четверг, 15.03.2012, 22:26 | Сообщение # 46
Мичман
Группа: Корсар
Сообщений: 65
Награды: 7
Репутация: 17
Статус: В открытом море
Я не разбираюсь. Но возможно:
1. Проверь наличие файла, и правильность названия.
2. Возможно надо указать полный путь к файлу.


start the war cause we are on the floor
The_JokerДата: Четверг, 15.03.2012, 23:03 | Сообщение # 47
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
Quote (vaga)
Вот указанно, в чём проблемма?

смотри error и compile, в них указан файл и строка ошибки. Ошибка гдето в диалоге, это я гарантирую, а вот где именно, ищи сам.




vagaДата: Пятница, 16.03.2012, 16:32 | Сообщение # 48
Капитан I ранга
Группа: Команда Аддона
Сообщений: 715
Награды: 32
Репутация: 190
Статус: В открытом море
а вот смотрите
case "First time":
dialog.text = "Чем обязан вашему визиту? Капитан?";
link.l1 = "Хм... Довольно странно, в резиденции Антигуа находитесь вы Адмирал, но как же дела в европе?";
link.l1.go = "dialog1";
link.l2 = "Нет ничем, я уже ухожу.";
link.l2.go = "exit";
break;

вот как сделать что бы при link.l2 go диалог кончался? -give_rose-

Добавлено (16.03.2012, 16:32)
---------------------------------------------
makeref(ch,Characters[n]); // Джон Кок
ch.name = "Джон";
ch.lastname = "Кок";
ch.id = "SentJons_Kok";
ch.model = "Albermal";
ch.model.animation = "man";
ch.sex = "man";
ch.location = "CommonResidence_2";
ch.location.group = "sit";
ch.location.locator = "sit2";
ch.Dialog.Filename = "Quest\Razorenie\Dreik.c";
GiveItem2Character(ch, GUN_COMMON);
ch.equip.gun = GUN_COMMON;
GiveItem2Character(ch, "blade7");
ch.equip.blade = "blade7";
ch.nation = FRANCE;
ch.rank = 46;
ch.reputation = "97";
SetSelfSkill(ch, 95, 95, 95, 95, 95);
SetShipSkill(ch, 90, 90, 90, 90, 90, 90, 90, 90, 90);
LAi_NoRebirthDisable(ch); // воскресть при убиении
LAi_SetSitType(ch); //
LAi_SetLoginTime(ch, 0.0, 24.0);
LAi_SetHP(ch, 500.0, 500.0);
LAi_SetImmortal(ch, true);
ch.greeting = "GrFisherman";
LAi_group_MoveCharacter(ch, "ENGLAND_CITIZENS");
n = n + 1;

Вот ещё указал точный путь к файлу диалога. И всё равно как на скриншоте?



За ветер добычи, за ветер удачи, чтоб зажили мы, ВЕСЕЛЕЙ И БОГАЧЕ))
mihasДата: Суббота, 17.03.2012, 12:54 | Сообщение # 49
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 2
Репутация: 4
Статус: В открытом море
Quote (vaga)
вот как сделать что бы при link.l2 go диалог кончался?

создай case exit :
Code
case "exit":
DialogExit();
break;




Сообщение отредактировал mihas - Суббота, 17.03.2012, 12:55
CaptainBleikkДата: Суббота, 17.03.2012, 23:51 | Сообщение # 50
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
korsary4, я пробовал твой диалог вставить про Порт-Ройал сыщика... Этот:
Code
  case "First time":   
       dialog.text = LinkRandPhrase("Здраствуйте, капитан. Меня зовут "+ GetFullName(NPchar)+".", "Добро пожаловать в Порт Рояль. Мое имя"+ GetFullName(NPchar)+".", "Здравствуйте, " + GetAddress_Form(NPChar) + "! Мое имя " + GetFullName(npchar) + ". Могу я узнать ваше имя?");       
       link.l1 = "Здравствуй, мое имя "+ GetFullName(Pchar)+". Я капитан судна " + PChar.Ship.Name + ".";   
       link.l1.go = "dialog1";   
      break;   
          
      case "dialog1":   
       dialog.text = "Я очень известная персона в Порт Рояле...Я самый лучший сыщик...Хех...Я вижу вы тоже не промах, сэр. Буду рад вас увидеть снова у меня в резиденции.";       
       link.l1 = "Сочту за честь, "+ GetFullName(NPchar)+".";   
       link.l1.go = "exit";   
      break;     
     }   
   }

И когда к концу подходит из него выйти нельзя, почему так? Если я правильно понял, то надо создать case "exit" да?

Добавлено (17.03.2012, 23:50)
---------------------------------------------
Что неправильно?

Code
    case "First time":  
      dialog.text = LinkRandPhrase("Здраствуйте, капитан.Что Вас привело сюда?";      
      link.l1 = "Здравствуйте, мое имя "+ GetFullName(Pchar)+". Я капитан судна " + PChar.Ship.Name + "Извините, не хотел Вас беспокоить. Разрешите идти.";  
      link.l1.go = "dialog1";  
     break;  
        
     case "dialog1":  
      dialog.text = "Не торопитесь капитан! Мое имя "+ GetFullName(NPchar)+". У меня есть для Вас работа. Решать Вам.";      
      link.l1 = "Так...Что за работа?";  
      link.l1.go = "dialog2";  
     break;

     case "dialog2":  
      dialog.text = "Вы слышали что-нибудь о Сергио Флоренсе?";      
      link.l1 = "Нет, что это за человек";  
      link.l1.go = "dialog3";
      break;
    
   case "dialog3"
        dialog.text = "Так вот. Он прибыл из Испании. Ужасный человек. Он обманул многих и ему всегда удается ускользнуть. Вы должны убить его";      
      link.l1 = "Окей";  
      link.l1.go = "exit";
   break;
    
  case "exit":  
  DialogExit();  
  break;
    }  
  }

Добавлено (17.03.2012, 23:51)
---------------------------------------------
P.S - это диалог, обычная проба jokingly Решил попробовать написать диалог, но что-то никак

Сообщение отредактировал CaptainBleikk - Суббота, 17.03.2012, 23:09
Джон_ТолсирДата: Воскресенье, 25.03.2012, 09:56 | Сообщение # 51
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
А как называется диалог с дипломатом?


korsar01Дата: Понедельник, 26.03.2012, 13:21 | Сообщение # 52
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Джон_Толсир,
CaptainBleikkДата: Суббота, 31.03.2012, 21:04 | Сообщение # 53
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
А как сделать чтобы в определенный момент в диалоге, например:
-Вот возми эту чашку.
Чашка появлялась в предметах ГГ?
Johnny-DeppДата: Суббота, 31.03.2012, 21:23 | Сообщение # 54
Пороховая обезьяна
Группа: Заблокированные
Награды: 0
Репутация: 0
Статус: В открытом море
CaptainBleikk,
Пишешь команду GiveItem2Character(pchar, "Blade23"); вместо Blade23, пишешь ID предмета
CaptainBleikkДата: Суббота, 31.03.2012, 21:44 | Сообщение # 55
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
Johnny-Depp, спасибо -give_rose-

Добавлено (31.03.2012, 21:44)
---------------------------------------------
т.е. так:
Code
case "First time":
dialog.text = "Здраствуйте, капитан. Возьми чашку? GiveItem2Character(pchar, "Blade23")";


Сообщение отредактировал CaptainBleikk - Суббота, 31.03.2012, 21:44
Johnny-DeppДата: Суббота, 31.03.2012, 21:47 | Сообщение # 56
Пороховая обезьяна
Группа: Заблокированные
Награды: 0
Репутация: 0
Статус: В открытом море
CaptainBleikk,
Да, только я всегда пишу команды в отдельных строчках

Добавлено (31.03.2012, 21:47)
---------------------------------------------
Точнее это обязательно

Джон_ТолсирДата: Суббота, 31.03.2012, 22:09 | Сообщение # 57
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
а что за команда: отдать предмет персонажу(ГГ отдаёт NPc)?
Что за команда: поступить в оффицеры...?(NPc идёт к ГГ в офицеры)



CaptainBleikkДата: Суббота, 31.03.2012, 22:15 | Сообщение # 58
Капитан I ранга
Группа: Корсар
Сообщений: 1190
Награды: 81
Репутация: 511
Статус: В открытом море
Спасибо

Сообщение отредактировал CaptainBleikk - Воскресенье, 03.06.2012, 14:18
Джон_ТолсирДата: Пятница, 10.08.2012, 14:13 | Сообщение # 59
Мичман
Группа: Корсар
Сообщений: 118
Награды: 4
Репутация: 1
Статус: В открытом море
А какая команда присудить титул? типа как во французкой и английской линейке?? и можно ли его потом убрать?


WMCДата: Среда, 22.08.2012, 08:17 | Сообщение # 60
Матрос
Группа: Корсар
Сообщений: 53
Награды: 5
Репутация: 22
Статус: В открытом море
А вот надо мне "заткнуть" нпс после диалога, типо он мне говорит: вы что-то выяснили? а я отвечаю: нет еще:

case "dialog12":
dialog.text = "Ну что ж, в таком случае удачи и спасибо вам. Если разберетесь во всём то обещаю хорошо заплатить.";
link.l1 = "Ну вот и отлично! Немедленно отправляюсь в Мариго.";
link.l1.go = "exit";
NextDiag.CurrentNode = "Stop";
Dialog.Exit();
break;

case "Stop":
dialog.text = "Вы что-то выяснили?";
link.l1 = "Ещё нет...";
link.l1.go = "exit_now";
break;

case "exit_now":
NextDiag.CurrentNode = "Stop";
Dialog.Exit();
break;

}
}
Что здесь неправильно? Игра пишет, что не может открыть файл диалога. До того как дописал эти команды всё работало.
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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