<?php
if ($speak) {
if ($speak==1 || ((substr($speak,0,2)=='u.' || substr($speak,0,2)=='n.') && isset($l_i[$loc][$speak]))) {
if (substr($speak,0,2)=='u.') {$to=$speak; $speak=1;} // чат
if ($speak!=1) $tchar=explode("|",$l_i[$loc][$speak]["char"]);
if ($char[8] && substr($speak,0,2)=="n." && substr($speak,0,4)!="n.h." && substr($speak,0,5)!="n.cap") msg("<p>Вы призрак и поэтому не можете ни с кем говорить, найдите лекаря или камень воскрешения");
if ($speak==1) {
include "f_speak1.dat";
} else // с квестовым NPC
if (substr($speak,0,4)=="n.q.") include "f_speakq.dat";
else // со своим
if (substr($speak,0,4)=="n.o.") include "f_speako.dat";
else
if ($l_i[$loc][$speak]["owner"]) {
$owner=explode("|",$l_i[$loc][$speak]["owner"]);
if ($owner[0]==$login) include "f_speakowner.dat"; else msg($tchar." принадлежит другому персонажу");
} else // с npc
if (file_exists("speak/".$speak) || substr($speak,0,4)=="n.g.") {
if ($tchar[7]==$login) msg("<p><small><b>Вы не можете разговаривать с ".$tchar[0].", т.к. он вас атакует</b></small>");
// диалог загрузится в $dialog (у стражи тоже)
if (substr($speak,0,4)=="n.g.") include "speak/n.g.guard"; else include "speak/".$speak;
if ($char[7]==$speak) {$char[7];$l_i[$loc][$login]["char"]=implode("|",$char);};
if ($id=='buy' || $id=='sell') {
if (!$dialog[$id]) msg($tchar[0]." торговать не будет");
if($speak=="n.Natan" && strpos($l_i[$loc][$login]["items"],"i.q.hagen:")===false && strpos($l_i[$loc][$login]["items"],"i.q.ditrih:")===false) msg("Прости, но я продаю палладинское оружие и броню только стражникам барона Дитриха или тем кто имеет грамоту от Лорда Хагена");
$trader=explode("|",$dialog[$id]);
if (!$to) include "f_speak".$id.".dat"; else include "f_speak".$id."to.dat";
}
if ($id=='buy2') {
if (!$dialog[$id]) msg($tchar[0]." торговать не будет");
$traders=explode("|",$dialog[$id]);
if (!$to) include "f_speak".$id.".dat"; else include "f_speak".$id."to.dat";
}
if ($id=='tobank' || $id=='frombank') {
if (!isset($dialog["bank"])) msg($tchar[0]." не банкир");
if (!$to) include "f_speak".$id.".dat"; else include "f_speak".$id."to.dat";
}
if (!$id) $id="begin"; // FIX: начальная тема "begin"
if (!isset($dialog[$id])) msg("Отсутствует тема \"$id\" в диалоге \"$speak\", сообщите разработчику игры, спасибо","Ошибка");
$dialog=explode("#",$dialog[$id]);
$title_v=$dialog[0]; // может быть переназначен в "eval: "
if (substr($title_v,0,6)=="eval: ") eval(substr($title_v,6));
if (substr($title_v,0,5)=="skill") include "f_speakskillup.dat";
$stmp="<p>".$title_v;
for($i=1;$i<count($dialog);$i+=2) {
$title_v=$dialog[$i];
$id=$dialog[$i+1];
if (substr($title_v,0,6)=="eval: ") eval(substr($title_v,6));
if ($title_v) $stmp.="\n<br/><b><small><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=".$id."\">".$title_v."</a></small></b>";
}
if (count($dialog)==1) $stmp.="\n<br/><b><small><a href=\"$PHP_SELF?sid=$sid\">[Конец диалога]</a></small></b>";
$stmp=str_replace("<imja>",$char[0],$stmp); // заменяем <imja> на имя игрока
msg($stmp,$tchar[0],1);
}else addjournal($loc,$login,$tchar[0]." не может с вами разговаривать");
}else addjournal($loc,$login,"Не с кем говорить");
}