View file 1/f_speak.dat

File size: 2.95Kb
<?php
if ($speak) {
	if ($speak==1 || ((substr($speak,0,2)=='u.' || substr($speak,0,2)=='n.') && isset($loc_i[$loc][$speak]))) {
	if (substr($speak,0,2)=='u.') {$to=$speak; $speak=1;}	// чат
	if ($speak!=1) $tchar=explode("|",$loc_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 ($loc_i[$loc][$speak]["owner"]) {
			$owner=explode("|",$loc_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>Вы не можете разговаривать с ".$tchar[0].", т.к. он вас атакует");
			// диалог загрузится в $dialog (у стражи тоже)
			if (substr($speak,0,4)=="n.g.") include "speak/n.g.guard"; else include "speak/".$speak; 
			if ($char[7]==$speak) {$char[7];$loc_i[$loc][$login]["char"]=implode("|",$char);};

			if ($id=='buy' || $id=='sell') {
				if (!$dialog[$id]) msg($tchar[0]." торговать не будет");
				if($speak=="n.Natan" && strpos($loc_i[$loc][$login]["items"],"i.q.hagen:")===false && strpos($loc_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=='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=$dialog[0];	// может быть переназначен в "eval: "
			if (substr($title,0,6)=="eval: ") eval(substr($title,6));
			if (substr($title,0,5)=="skill") include "f_speakskillup.dat";
			$stmp="<p>".$title;
			for($i=1;$i<count($dialog);$i+=2) {
				$title=$dialog[$i];
				$id=$dialog[$i+1];
				if (substr($title,0,6)=="eval: ") eval(substr($title,6));
				if ($title)	$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=".$id."\">".$title."</a>";
				}
			if (count($dialog)==1) $stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid\">[Конец диалога]</a>";
			$stmp=str_replace("<name>",$char[0],$stmp);	// заменяем <name> на имя игрока
			msg($stmp,$tchar[0],1);

			}else addjournal($loc,$login,$tchar[0]." не может с вами разговаривать");
		}else addjournal($loc,$login,"Не с кем говорить");
	}